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 ]