Глава 3. Совместимость и интеграция

1. SQL
2. SSH
3. sendfile()
4. IPv6
5. Регистровая зависимость имени файла
6. FXP

Существует мини-сборник полезных советов на http://www.castaglia.org/proftpd/doc/, описывающих, как устанавливать ftp соединения через ssh.

sendfile() - системный вызов, который упрощает копирование данных между диском и tcp сокетом. Запрос, копируемый со страницы, кэшируется напрямую, и не требует механизма копирования ядро -> пользовательская область -> область ядра ядра для каждого вызова read() и write(). Обычно преимущества можно видеть на сильно загруженных серверах. Запрос поддерживается в ProFTPD для Linux и FreeBSD.

Linux 2.0.x

sendfile не поддерживается под 2.0.x, что не является проблемой при компилляции для 2.0.x в системе 2.0.x. Однако, при компилляции в системе 2.2.x для использования на 2.0.x, воспользуйтесь флагом --disable-sendfile.

Детектирование sendfile() при запуске

Johnie Ingram (также известный как netgod): 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

Проблемы с sendfile

Наблюдается ряд проблем с sendfile(), особенно с директивами и опциями, требующими точного определения размера файла. При выполнении таких функций, как Rate* и скачивании больших файлов лучшим советом на данный момент будет отключение sendfile по умолчанию ( --disable-sendfile).

Sendfile() также является источником ряда проблем с искажением содержимого файлов.

В настоящее время нет официальной поддержки для IPv6 в дереве кодов 1.2.x, однако, существует http://www.t17.ds.pwr.wroc.pl/~misiek/ipv6/ и, возможно, будет разработана более полная поддержка при работе над версией 1.3.x.