Changes in 1.0.1: *) Introduce HOST command to change virtual host context, and invoke an implicit HOST command for the default hostname, resulting in the 220 message and welcome text. Until authorization, the user may repeatedly re-issue the HOST command. [William Rowe] *) Support TLS-SNI hostname and issue an implicit HOST command upon any TLS-SNI connection. For Explicit SSL connections, this results in the initial 220 message and welcome text, however with Implicit SSL connections, the implicit HOST response is surpressed, because that 220 message and welcome text are unexpected (234 is the correct response). [William Rowe] *) Pick up httpd 2.4 required changes for compilation. [William Rowe] *) Resolve a crash-bug when built against 2.2.29 and later, due to the addition of r->trailers_[in|out] fields. Note the module is not binary compatible between 2.2.27 or earlier and 2.2.29 and later. [William Rowe] *) Resolve a crash-bug in RETR/REST when the client would terminate the retrieval in interesting ways. Ensure we linger close prior to reverting the filter stack. [William Rowe] Changes in 1.0.0: *) Fix "FTP low port request received for invalid server" error when combining low numbered FTPActiveRange ports with FTPJailUser and PORT requests. [William Rowe] *) Fix compatibility of httpd.conf-editing logic with non-GNU awk. PR 48067 (mod_fcgid). [Hans Werner Strube ] Changes in 0.9.6: *) Add sys/stat.h detection and clean up Solaris gcc compilation flaws. [Rainer Jung, William Rowe] *) Fix a make install DESTDIR problem handling the reference manual and potentially other files. [Paul Howarth ] Changes in 0.9.5: *) Correct JailUser option, ensure the modified server config is retained from request to request, between logins. [William Rowe] *) Correct RETR path handling to permit RETR path/foo. PR 47194. [Zin UDA , William Rowe] *) Escape output of user supplied text in control channel responses. Adds an ftp_escape_control_text() API for extention module authors. [William Rowe] *) Correct RFC2640 conformance with respect to filenames containing leading and/or trailing whitespace. This introduces a new cmd flag, FTP_KEEP_WHITESPACE (aliased as FTP_TAKE1_PATH). [William Rowe] *) Accept lowercase TYPE arguments. [William Rowe] *) Implement MODE S, STRU F and TYPE L 8 (treated as I) and TYPE A N (treated as TYPE A). [William Rowe] *) Introduce FTPOptions NoUTF8Feature; without this configured in the global context, mod_ftp will report UTF8 in response to FEAT, to indicate that non-ASCII filenames, including UTF8, are ok per RFC2640. [William Rowe] *) Answers HELP and FEAT queries without a prior login. [William Rowe] *) REST STREAM, EPRT, EPSV added to the FEAT results as required by spec (with an extensible mechanism). [William Rowe] *) Drop HELP mention of experimental LPRT/LPSV and antique MAIL commands. [William Rowe] Changes in 0.9.4: *) Corrected %A and %a to properly reflect the local-IP and remote-IP, respectively. [Guenter Knauf] *) Restore leading dotted filenames in LIST and NLST commands (e.g. ".file"). [William Rowe] *) Portablity fixes for httpd 2.0 and 2.2. [William Rowe] Changes in 0.9.3: *) Added a low-numbered port (<1024) daemon process which serves such low numbered FTPActiveRange origin port bindings. [William Rowe] *) FTPLimit* values no longer shared among all Vhosts. [Jim Jagielski] *) Corrected logged count of bytes STORed or APPEnded when >4GB. [Jim Jagielski, William Rowe] Changes in 0.9.2: *) Now compiles in httpd-2.3-dev, however the Require dir-name feature is lost for now due to 2.3-dev auth refactoring. [William Rowe] *) The ftp processing filters are now slid out of the way for non-ftp insert_filters hook processing. [William Rowe] *) Introduce virtual hosts, using FTPOptions VirtualHostByUser which will take the virtual host name from the username@hostname if provided. It will match the first vhost (as with http) when there is no hostname provided or no host names or aliases match. The corresponding option FTPOptions StripHostname will present only 'user' of 'user@hostname' to the authentication modules. [William Rowe] *) Ensure requests are processed with an r->status of HTTP_OK, as a number of facilities will fail when presented with an error status. [William Rowe] *) Move the ftp_connection from r->request_config, where it never belonged, into the c->conn_config where its scope matches the lifetime of the conn. [William Rowe] *) Resolve httpd-2.0 load failure due to missing apr_strtoff in apr-0. [William Rowe] *) Ensure that USER must preceed PASS, and that USER failing the FTPOptions RequireSSL test won't permit a PASS to succeed. [William Rowe] Changes post submission, and prior to first release *) Fix the REST command to accept large file sizes allowing restart of transfers larger than 2GB on largefile enabled systems. [Niklas Edmundsson] *) configure.apxs; using Makefile.apxs/modules.mk.apxs, now rely entirely on apxs plus the httpd/build schema for much simplified out-of-tree builds, with fewer make-related side effects. [William Rowe] *) Reduce memory consumption with APR_PATH_MAX+1 sized buffers for CWD and RNFR commands, a login_pool for USER/PASS scope commands, and a data_pool for PORT/PASV/EPRT/EPSV connection lifetime scope. [William Rowe] *) [API major break] Cleaned up the contents and order of fields in the ftp_connection structure prior to 0.9.0 beta release. *) Added EPSV and EPRT support for IPv6 servers. [William Rowe] *) Eliminated seteuid(0) code path for low-numbered ports. Although a solution is desired, the prior code was unacceptable. [William Rowe] *) Remove dependence on ftp_glob(). [Jim Jagielski] *) Moved FTPUMask and FTPDirMask from the vhost server scope out to per-directory scope (valid in .htaccess with Options FileInfo.) Enabled these directives even if fchmod is absent. [William Rowe] *) Reorganized PASV command handling and the FTPPasvBindAddr directive to handle IPv6 addresses, especially for the cases of dual-bound adapters, IPv6 tunneled IPv4 connections, and IPv6 servers hiding behind IPv4 load balancing solutions. [William Rowe] *) Adjust 220 and 215 responses to only quote the same Server: string which the HTTP Server: string would display. This removes the build datestamp from 215 responses, and adds Type: L8 to the 215 response. [William Rowe] *) Update to Apache HTTP 2.2. [William Rowe] *) Incorporated documentation submitted by Covalent, in Apache HTTP-style, with edits and additional examples. [Sander Temme] *) Remove the configuration system, starting over. Makefile.apxs is the trivial mechanism, but also added config.m4 to configure in-tree. [William Rowe, Colm MacCarthaig] *) Implement the FTPDirUmask directive to allow the administrator to customize the perms of newly MKD'ed directories, independent of the FTPUmask (which wasn't honored in the first place for dirs.) [Kanagasabai Sriskanthaverl ]