Created attachment 212743 [details]
www/wt v4.2.2 to v4.3.0 patch file
Wt 4.3.0 mainly adds the ability to redirect logging to a custom logging function, and login and transport encryption to the mail client, among some other fixes and tweaks.
Logging redirection (issue #7240)
Before, it was possible to send logging to a file or an std::ostream, and configure which messages were logged in wt_config.xml. Wt 4.3.0 extends this with the ability to send all logging to a function, allowing users to redirect Wt's logs to whathever logging framework they prefer to use.
The few log messages coming from Wt::Dbo would always be logged to std::cerr. It is now possible to change this to use Wt's logger, or a custom log function.
To allow for this new functionality, we introduced an abstract WLogSink class, and the following functions:
WServer::setCustomLogger(): sets a custom logger on the WServer level
Wt::Dbo::setCustomLogger(): sets a custom logger globally for all of Wt::Dbo
Wt::Dbo::logToWt(): sends all of Wt::Dbo's logging to Wt's logger
Mail client: support for login and encryption (issue #7444)
We added basic support for PLAIN and LOGIN authentication methods, and encryption using StartTLS or just simple TLS.
You can enable authentication with Client::enableAuthentication(), and encryption with Client::setTransportEncryption(), or using the configuration properties smtp-auth-username, smtp-auth-password, smtp-auth-method, and smtp-transport-encryption.
Some small changes in behaviour that you may want to be aware of:
Wt::Auth: lost password tokens used to be removed as soon as the link was used, even when they were not actually used to change the password. Now, the token will stay valid until the password is actually changed. Also, if the password is changed through other means, the update password token is invalidated.
WCanvasPaintDevice: instead of stopping the drawing entirely when drawImage() fails (e.g. because of a missing image), the image will be skipped but drawing will continue. An error will be logged to the console.
Issue #7060: fixed Request::clientAddress() when behind a reverse proxy to be the same as WEnvironment::clientAddress(), and as mentioned in the documentation.
Issue #7404: reparenting of popup widgets should only stop at scroll bars.
Other changes and fixes:
WLength: added LengthUnit::ViewportWidth, LengthUnit::ViewportHeight, LengthUnit::ViewportMin, and LengthUnit::ViewportMax.
Updated the composer and filetreetable examples to use WLocalDateTime rather than OS specific functions.
Refactored the treelist example.
added query parsing implementation based on X3 instead of Spirit Qi, which reduces compile time and memory usage.
added SqlStatement::columnCount(). This makes it possible to create query_result_traits for result types with a variable number of columns, like std::vector.
WModelIndex now has a proper ordering, even for raw indexes. This means they can properly be inserted into and retrieved from a std::set.
WServer: documented the schedule() function.
wthttp: added child process id to some of the logging related to dedicated session processes
Build info is available at https://gitlab.com/swills/freebsd-ports/pipelines/130221172
A commit references this bug:
Date: Tue Mar 31 08:10:22 UTC 2020
New revision: 529955
Update to 4.3.0
Sponsored by: Netzkommune GmbH