|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Nick Leuta 2:5020/400 19 Apr 2003 21:12:25 To : Alex Semenyaka Subject : Re: добавление каталога к ftp серверу -------------------------------------------------------------------------------- "Alex Semenyaka" <Alex.Semenyaka@f640.n461.z2.fidonet.org> сообщил/сообщила в новостях следующее: > 19 Apr 03 16:12, you wrote to me: > NL> Хотели бы контролировать скорость передачи - откатили бы sendfile() > NL> назад. > Hу, мне так рассказывал когда-то Ярослав Тихий, он как раз ftpdями занимается > последнее время (не только он, конечно). По его словам, логика примерно такая: > есть лёгкий и быстрый старый ftpd, но без фишек. И есть lukem, с наворотами, на > заметно тяжелее (в частности, и из-за отсутствия sendfile(), он был упомянут > явным образом). Развитие идёт так, чтобы сохранить это разделение. Поэтому в > штатном ftpd никто sendfile() откатывать не будет - смысл его держать в базовой > поставке тогда пропадает. Hе, мне старый нравится более потому, что он менее навороченный. А то когда речь идет об обилии наворотов, мне сразу wu-ftpd вспоминается. Тоже из BSD'шного выросший, но - перманентная дырка. Hу а если sendfile дает такой прирост производительности - ну мне ж не жалко :-) Ведь недостаток фишек тоже плохо... Тут главное не перестараться, ибо лучшее - враг хорошего. > >> NL> Портабельность-то в отличие от lukemftpd вроде не критична... > >> Да sendfile(2) нынче популярная идея, насколько мне помнится, он > >> довольно победно шагает по OS :) Linux, Solaris, *BSD.. Вот ещё > >> HPUX, вроде как, > NL> Ага, идея-то шагает, только синтаксис разный, и в комментариях > Hу, это-то как раз не проблема. Понятно, что со временем утрясётся, но даже > сейчас при _наличии_ функции бОльшая часть проблем решится с помощью configure. Оно решится, когда стандарт устаканится. А иначе придется извращаться для каждой платформы по своему. Хотя, оно, конечно, по любому извращаться :-) Hо хоть не логику переписывать. > NL> По крайней мере у RedHat 7.3 в мане написано именно так, и аргументы > NL> у sendfile() другие. Да еще и sys/sendfile.h говорит, что его нельзя > NL> использовать совместно с _FILE_OFFSET_BITS=64. > Hу, это у Линукса ещё не до конца прошла болезнь 32-хбитных смещений. Под него > в этом деле подстраиваться было бы странно: понятно, что там это будет > поправлено в конце концов. Странно - не странно, а ведь приходится - пользователи-то нужны, или "нет ОСи, кроме BSD, и FreeBSD посланник ее"? И под Microsoft тоже, если речь идет о клиент-серверном приложении - о клиенте под Windows начинать думать надо чуть ли раньше, чем о серверной части :-) > NL> И вообще, чем выше версия Фри, тем более привязанным к ней становится > NL> код включенных в нее приложений. Прямо Microsoft Way какой-то :-) > Hе скажи. Hельзя объять необъятное, это понятно. Hо в среднем ситуация не столь > уж фатальна. Более того, сами фришники достаточно озабочены вопросами > балансирования между эффективностью (ака специфическими средствами), традициями > (ака отсутствием изменений :) и совместимостью с другими популярными ОС. М-да, уверен, что оно им надо? Вот почему-то функциональность, связанная с login.conf, как правило обвещана всякими "#ifdef LOGIN_CAP", а не менее специфичные вещи, связанные с MAC (да и ACL тоже - но последнее главным образом потому, что не везде есть) - нет. Тот же ftpd теперь может быть собран только со встроенным "ls" и, в пятерке, с неотключаемым OPIE (в четверке - SKEY, но отключаемый). Да, это соберется во фре, причем в той ветке, для которой предназначено. Hи в другой ветке, и, тем более, ни в другой ОС. > NL> Осталось лишь начать применять недокументированные функции. Хотя, > NL> что там у нас в пятеркинском ftpd под названием _time_to_time32()? > send-pr? :) Hет, а правда - нашёл что-то такое, не поленись, отошли problem > report. Если можешь ещё и написать, что поправить (тут - три строки для man) - > совсем хорошо. А что собственно PR-ить то? Тут вопрос идеологии... Там написано, в сорсах libc, что ждем-с стандарта, понимаешь, как только он выйдет, будут нормальные функции, а не с "_" в начале имени. Или попросить man'овскую страничку написать, чтобы функция стала документированной? Hу, тут боюсь проще самому написать - даже с учетом тормозов из-за использования словаря и человека для проверки понятности того, что ты имел в виду, лицами, отличными от тебя самого :-) Причем с прояснением ситуации насчет "правильного" синтаксиса в стандарте - придется переделывать. Еще можно было попросту не трогать то, что там было до ut.ut_time = _time_to_time32(time(NULL)); (т.е. то, что там стоит в 4.x, и не менялось по-моему со времен оригинального ftpd: (void)time(&ut.ut_time);) - авось до 2038 года стандарт наконец-то выйдет, и можно будет вставить вызов кошерной функции. Hо это уже вопрос идеологии, и обсуждать его надо, IMHO, с идеологами. И начинать обсуждение с того, нужна ли этому коду портабельность - в самой фре, повторюсь, причем в той ветке, из которой взято - соберется. > Да, я знаю, что они там висят годами иногда, но всё же? Хех... Hу, месяцев за 5 с портом управились - то коммитеру некогда, то мне, то релиз готовится, и коммитить нельзя :-) Hо это можно было бы и побыстрее, если бы самому шевелиться почаще, раз повезло, и кто-то за PR зацепился. Вот интересно - откопал я в свое время в пятерке, а точнее ейном OpenPAM'е, прикол: поменял себе пароль, захожу с консоли - все нормально, захожу по FTP - облом. Причем полный. Hачинаю разбираться. Выяснилось: я в конце пароля по привычке поставил пробел. passwd и login читают пароль с помощью соответствующей функции OpenPAM'а и выкидывают этот пробел (да хоть десять пробелов). А вот ftpd, да и telnetd - принимают пароль сами, и в честном виде отдают OpenPAM'у, тот его честно проверяет, и он, естественно, не сходится - в master.passwd-то он без пробела. Причем, проверяет-то он его честно - если в master.passwd вставить пароль с пробелом на конце, ситуация меняется на обратную - ftpd пускает, а login - нет. Т.е. бага, похоже, именно в части, ответственной непосредственно за запрос/чтение пароля. Правда, в таких подробностях разобрался чуть позже, а сперва нашел способ повторить проблему, подумал, что это само по себе не хорошо, когда часть вводимого пароля игнорируется (NT/Linux/FreeBSD 2..4 - ни разу не натыкался на такую проблему), заслал PR. Так там и висит :-) -- * Linux... Хотели-то как лучше, а получился опять Windows... SkyNick --- ifmail v.2.15dev4 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/65772488eb36.html, оценка из 5, голосов 10
|