Chapter 3. Compatibility and Integration

1. SQL
2. SSH
3. sendfile()
4. IPv6
5. Filename case sensitivity
6. FXP

1. SQL

ProFTPD has support for authentication and logging via SQL databases using the mod_sql module as supplied in the main distribution.

2. SSH

There is a mini-HOWTO at http://www.castaglia.org/proftpd/doc/ detailing how to tunnel ftp connections over ssh.

3. sendfile()

sendfile() is a system call which streamlines the copying of data between the disk and the tcp socket. The call copied from the page cache directly rather than requiring a kernel -> user space -> kernel space copy for every read() and write() call. Generally the advantages are only felt on heavily loaded servers. The call is supported in ProFTPD for Linux and FreeBSD.

Linux 2.0.x

sendfile is not supported under 2.0.x, this is not an issue when compiling for 2.0.x on a 2.0.x system. However when compiling on a 2.2.x system for use on 2.0.x use the --disable-sendfile flag.

Runtime detection of sendfile()

Johnie Ingram (aka netgod)'s: http://www.proftpd.org/proftpd-devel-archive/99-10/msg00073.html

John Pierce <hawkfan@pyrotechnics.com> http://www.proftpd.org/proftpd-devel-archive/99-10/msg00112.html

Problems with sendfile

There appear to be a number of problems with sendfile() particularly with the directives and features which require accurate determination of filesize. Such as the Rate* functions and downloading large files, the best advice at the moment appears to be to disable sendfile by default ( --disable-sendfile ).

Sendfile() also appears to be the source of a number of file corruption problems.

4. IPv6

There is currently no official support for IPv6 within the 1.2.x code tree, however there is an http://www.t17.ds.pwr.wroc.pl/~misiek/ipv6/ and more comprehensive support will probably be developed during the 1.3.x development cycle.

5. Filename case sensitivity

ProFTPD is utterly dependant on the underlying OS to handle filename case sensitivity. If the underlying OS is case sensitive then ProFTPD will be, there are currently no plans for a module to handle this.

6. FXP

FXP is capable of bouncing data between websites. There have been a number of reports of problems in configuring ProFTPD to function cleanly with this program (http://flashfxp.skuz.net/).

To support FXP when connecting as a user place "AllowForeignAddress on" in the Global or VirtualHost context.

To support FXP when connecting as anon "AllowForeignAddress on" must be placed in the Anonymous context.

The config will happily support "AllowForeignAddress on" in multiple places within the config.