Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Nick A. Leuta                        2:5020/400     27 Apr 2003  02:45:02
 To : All
 Subject : ftpd: обработка OOB
 -------------------------------------------------------------------------------- 
 
 
 Либо я чего-то пропустил и не понял идею, либо и вправду что-то не так...
 
 Имеем внутри циклов при передаче данных что-то типа
 if (recvurg)
         goto got_oob;
 
 и потом в конце функции:
 got_oob:
         myoob();
         recvurg = 0;
         transflag = 0;
         return (-1);
 
 Место, где бы recvurg получал значение, нашлось только одно:
 
 static void
 sigurg(int signo)
 {
         recvurg = 1;
 }
 
 В итоге передача данных, насколько я понял, прервется при любой активности
 на управляющем соединении. Все бы ничего, если бы не одно "но" - myoob()
 обрабатывает команды ABOR и STAT, и если первая как раз и должна
 прервать передачу данных, то вторая мягко говоря не обязана... А от
 myoob()-то как раз ничего и не зависит...
 
 В принципе, легко исправить, вернув обратно myoob() роль обработчика
 SIGURG, как это и было изначально, только вот непонятно, зачем было
 огород-то городить (разве для того, чтобы было одинаково с OpenBSD -
 там то же самое)?
 
 Заодно не понял, чем старые setjmp()/longjmp() так разонравились -
 дополнительное сравнение внутри цикла - оно конечно немного, но
 все же, особенно если цикл делает putc() того, что было
 про'getc()'овано в его условии? :-)
 
 =======
 SkyNick
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 ftpd: обработка OOB   Nick A. Leuta   27 Apr 2003 02:45:02 
 ftpd: обработка OOB   Alex Semenyaka   08 May 2003 23:21:14 
 Re: обработка OOB   Nick Leuta   10 May 2003 16:16:59 
 обработка OOB   Alex Semenyaka   11 May 2003 19:34:20 
 Re: обработка OOB   Nick Leuta   12 May 2003 17:49:55 
 обработка OOB   Alex Semenyaka   12 May 2003 19:14:00 
Архивное /ru.unix.bsd/6577ef1960e8.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional