Checkout Tools
  • last updated 1 hour ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1868812 is being indexed.

The process_connection hook for mod_ftp must run before the process_connection

hook(s) for mod_http2 because http2 attempts a 24-byte speculative read. FTP

connections don't send headers, so mod_http2 hangs until this read times out.

http2's hook cannot be registered as a successor to ftp's because there are two mod_http2

process_connection hook functions. This change makes mod_ftp register as APR_HOOK_FIRST

and before mod_ssl & mod_reqtimeout to ensure that it runs before any other

protocol handlers.

Introduce the HOST command (and XWEL command for diagnostics), and support for

TLS-SNI provided hostname via an implicit HOST invocation. Corrects headers

and fields to ensure the host names are initialized at the appropriate times,

and that the orig_server maps to the correct host. This is known to work

correctly with the latest Filezilla (uses SNI by default), for both Explicit

and Implicit SSL connections on httpd-2.2, but the SSL logic is known to be

broken for the data channel on httpd-2.4 (likely not a regression).

  1. … 8 more files in changeset.
This Copyright is already preserved in NOTICE-FTP as well as in svn history
  1. … 14 more files in changeset.
Cleanup effort in prep for GA push:

Trim trailing whitespace... no func change

  1. … 7 more files in changeset.
Introduce FEAT advertising of UTF8, unless Options NoUTF8Feature is

globally configured.

  1. … 3 more files in changeset.
Refactor HELP and FEAT to work around a roadblock. This patch further;

* introduces FTP_NO_HELP for commands registered for the FEAT list only

* introduces FTP_NEW_FEAT for commands which must be reported via FEAT

* adds REST STREAM, EPRT, EPSV to the FEAT results as required by spec

* drops HELP mention of experimental LPRT/LPSV and antique MAIL commands

  1. … 5 more files in changeset.
Add autoconf logic for both fdpass mechanisms (apxs flavor to follow)

  1. … 4 more files in changeset.
Compile-time warnings

  1. … 1 more file in changeset.
Enable the low-numbered-port daemon for originating from FTPActiveRange < 1024.

  1. … 5 more files in changeset.
Clean up internal includes, FTP_BUILD is not required any longer
  1. … 12 more files in changeset.
Move internals to a sep header file... allow for

2.2 and earlier/later compilation

  1. … 16 more files in changeset.
Update sources to conform to the new copyright/license labeling policy,

correct the date format of the Original copyrights, and promote the inet_pton

notice into NOTICE-FTP and LICENSE-FTP

  1. … 28 more files in changeset.
Before we actually do a release, adjust to

follow normal ASF C indent guidelines.

  1. … 13 more files in changeset.
Fix ap_get_scoreboard_worker_from_indexes for post-2.2 API,

and drop Require dir-name with post-2.2 API for now, because

this must be either refactored for the new auth conf stuff,

or implemented as a distinct module (preferable, if possible).

  1. … 1 more file in changeset.
If this is not an ftp connection, our filters are in the way.

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 presents only

'user' of 'user@hostname' to the authentication modules, otherwise

the full USER text is passed to the authentication modules.

  1. … 5 more files in changeset.
Major Change (of a major-MMN bump scope) to move ftp_connection

configuration entry from r->request_config to c->conn_config, because

these members have a connection lifetime scope.

  1. … 10 more files in changeset.
Make cmd entry static;

Reported by: Takashi Sato <serai>

Fix a win32 build flaw.
Refactor ftp_config out of win32, and out of unix in-tree builds.

FTP_APXS_BUILD is hiding in Makefile.apxs, and won't otherwise

be defined.

  1. … 13 more files in changeset.
Clean this up for good, and hold on to basefsc for multiple purposes

(not only limitdbfile, but future changes for a root port daemon).

no var declarations after function calls.

Group <directory> directives to the end of the cmd table

Honor const'ness

According to mod_ftp.xml, LimitDBFile is global, while the

specific Limit directives are permitted per-vhost. Drop the

invalid context checks for those related directives, and

greatly simplify the global LimitDBFile logic and save a ton

of cycles at startup.

FTPEPSVIgnoreFamily is the sort of directive that a typical installation

would use globally or not at all, depending on the physical topography.

Drop the no-inherit aspect of epsv_ignore_family.

  1. … 1 more file in changeset.
Refine EPSV behavior and add a new directive, FTPEPSVIgnoreFamily,

which allows the user confronted by firewall NAT translation to

simply accept either AF IPv4 or IPv6 and listen on the client's

connected port. Because some NAT's are going to present an address

family other than the one the client believed it's using, this is

an important override to avoid firewall/routing/nat issues.

Because EPSV never reports a desired IP address, it's a bad idea

for us to support any aspect of the FTPPASVbindaddr feature.

  1. … 2 more files in changeset.
Limit active and pasv port range to a ushort, and ensure

these are not negative (we permit 'port 0' only to override

a globally declared explicit range with the ephemeral range).

Filter ordering is still flakey, and not actually required AFAICT (certainly,

not NULL filter ordering!)

Clean up ftp_module declaration syntax.

Uhm - FTPUMask FTPDirMask are -always- supported (possibly not well, but

that's an apr issue). FTPUmask happens to be less-lame with fchmod, but

it's not impossible otherwise. With fchmod, the file perms are 000 as the

file is initally accumulated, and then switched. Without, the perms are

determined at create-time.