|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 04 Mar 2002 13:59:56 To : All Subject : simple_httpd -------------------------------------------------------------------------------- Маленький, но шустрый http-сервер. У меня работает на раздаче mp4 под FreeBSD 4.5-STABLE, кушает мало памяти и процессора. /* README.rus */ Simple_httpd - исправленный и дополненный. Изменения вносились в simple_httpd от FreeBSD 3.5. Собирается и работает на FreeBSD 3.x, FreeBSD 4.x. Hа остальных системах не тестировался, но должен собираться с минимальными усилиями. Предназначен для быстрой раздачи тяжелой статики (mp3,mp4) в условиях дефицита памяти и процессора. Hе использует конфигурационные файлы. Способен работать в составе PicoBSD. Основные отличия от исходного кода: - Исправлены многочисленные buffer overflow, ведущие к segmentation fault. - Добавлена пропущенная выдача Content-length. - Уменьшены требования к памяти по сравнению с исходным кодом при компиляции без дополнительных возможностей. В основном за счет удаления неиспользуемых переменных и сокращения размера буферов. В некоторых случаях копирование строк заменено копированием указателей. - Введеен массив mime_type[][] для отображения расширений в MIME-type и detault_mime_type для файлов с неизвестным/отсутствующим расширением. Для изменения таблицы требуется пересборка. - Все strcpy() и strcat() заменены на strncpy() и strncat(). - Сервер больше не выдает код ошибки HTTP 405, вместо этого выдается 404 или 501. - Для пустого запроса выдается 501 вместо 404. - (GCC) Компиляция без предупреждений при gcc -ansi -pedantic -Wall -Wno-format. -Wno-format убирает фальшивое предупреждение об использовании %m в syslog() - Добавлена поддержка "докачки": сервер распознает Range и Request-Range и выдает 206 Partial contents. Соответствующий код позаимствован из thttpd-2.21b (какая у него лицензия?), поэтому распознаются только форматы %d-, %d-%d. - Поддержку CGI можно отключить, указав при сборке SHTTP_NOCGI=yes. - Код отладочного вывода (-v) можно отключить, указав при сборке SHTTP_NOVERBOSE=yes. - Добавлена возможность выдачи диагностики через syslog(3). Для включения указать SHTTPD_USE_SYSLOG=yes при сборке. Использует logging facility daemon. По умолчанию использует syslog-префикс simple_httpd, префикс переопределяется через опцию командной строки -s. Префикс должен быть короче 32 символов. - (BSD) Добавлена возможность ограничения доступа через hosts_access(5). Для включения указать SHTTPD_USE_TCP_WRAPPERS=yes при сборке, это добавляет код. Для того, чтобы этот код использовался, указать ключ -w при старте. Hазвание сервиса берется из аргумента ключа -s. Если включено использование syslog(3), отброшенные коннекты отмечаются в syslog как auth.warning. - Добавлен таймаут на этапе чтения запроса. По умолчанию 10 секунд, значение можно изменить через опцию -t. - Сервер больше не порождает зомби. - Сервер использует '/' в качестве HOME, если такой переменной среды нет, вместо того чтобы падать по SIGSEGV. - Сервер теперь создает лог-файл, если его нет. Права доступа определяются текущим значением umask. - Сервер больше не ограничивает backlog для listen(2). Теперь используется системный предел. - (BSD) Добавлена возможность использования setproctitle(3) для индикации внутреннего состояния. Для включения указать SHTTPD_USE_SETPROCTITLE=yes при сборке. Если к тому же указан SHTTPD_USE_TCP_WRAPPERS, заголовок будет включать адрес клиента. - (BSD) Опциональная поддержка URL, закодированных как %NN. Для включения указать SHTTPD_URLDECODE=yes. Ограничения: код использует непереносимые функции ishexnumber() и digittoint() из libc FreeBSD и не обрабатывает '?'. TODO: избавится от ограничений. - (BSD) Добавлена возможность использования sendfile(2) вместо цикла read/write. Для включения указать SHTTPD_USE_SENDFILE=yes при сборке. Может потребоваться изменить опцию ядра NSFBUFS, проверьте в LINT. - (BSD) Добавлена возможность использования FreeBSD accf_http(9). Для включения кода указать SHTTPD_USE_ACCF=yes при сборке. Для использования фильтра добавить опцию командной строки -a. Hамеренно не имеет встроенных ограничений доступа ради уменьшения кода. Предполагается использование системных средств. Hапример, для FreeBSD (и, возможно, других *BSD) это login.conf, hosts_access и firewall. Eugene -- "Люди забыли эту истину," - сказал Лис, - "но ты не забывай" --- slrn/0.9.7.3 (FreeBSD) * Origin: Svyaz Service JSC (2:5006/1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/2609337d79b83.html, оценка из 5, голосов 10
|