Hello,
I recently encountered some ftp servers, which keep sending data even 
after reporting ABOR cmd complete. This patch adds a timeout after which 
a reconnect is performed instead of further fetching of the remaining data.

Regards,

-- 
Jindrich Makovicka

--- orig/ftpfs.c        2002-10-06 17:12:10.000000000 +0200
+++ ftpfs.c     2002-10-07 10:17:14.000000000 +0200
@@ -1003,8 +1003,17 @@
     if (dsock != -1) {
        FD_ZERO(&mask);
        FD_SET(dsock, &mask);
-       if (select(dsock + 1, &mask, NULL, NULL, NULL) > 0)
-           while (read(dsock, buf, sizeof(buf)) > 0);
+       if (select(dsock + 1, &mask, NULL, NULL, NULL) > 0) {
+           struct timeval start_tim, tim;
+           gettimeofday(&start_tim, NULL);
+           while (read(dsock, buf, sizeof(buf)) > 0) {
+               gettimeofday(&tim, NULL);
+               if (tim.tv_sec > start_tim.tv_sec+1) {
+                   reconnect (me, super);
+                   return;
+               }
+           }
+       }
     }
     if ((get_reply(me, SUP.sock, NULL, 0) == TRANSIENT) && (code == 426))
        get_reply(me, SUP.sock, NULL, 0);

Reply via email to