This addresses the issue described on
https://github.com/duplicati/duplicati/issues/6005
If a PureFTP server is detected, a warning is issued when executing server file listing.
The parameter`ignore-pureftpd-limit-issue` allows the warning to be suppressed.
In the event of an effective truncation, it will throw an exception and that cannot be suppressed as incomplete listing can lead to misleading backup/restore operations.
This PR adds a unified way of supplying timeouts to each of the backends.
It also adds an opt-in way of adding commonly used options, so parsing and usage can be standardized across multiple backends.
Changed the strategy to use absolute paths for all operations, to avoid cases where a silent reconnect would end up in a different folder.
Add backwards compatible option to use CWD style relative operations.
Added support for detecting the SSL certificate hash when there is a certificate error.
With this change, ftp-passive, ftp-regular and use-ssl parameters found on existing FTP Backend configurations will be respected and exhibit the same behavior. They are marked as deprecated so they will issue warning messages when used prompting users to refer to new parameters.
For this change, what was known as the alternate FTP client which uses FluentFTP library now officially replaces the FTP Backend which still used the deprecated FtpWebrequest.
To mantain compatibility with existing configurations, both ftp and aftp targets and configuration prefixes are accepted.