You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2007/12/08 00:43:58 UTC

svn commit: r602273 - in /httpd/mod_ftp/trunk: STATUS modules/ftp/ftp_commands.c modules/ftp/ftp_protocol.c

Author: wrowe
Date: Fri Dec  7 15:43:52 2007
New Revision: 602273

URL: http://svn.apache.org/viewvc?rev=602273&view=rev
Log:
Back out remaining ftp_commands.c bogosity, and observe the many
corrections required within ftp_protocol.c's XXX notes.

Modified:
    httpd/mod_ftp/trunk/STATUS
    httpd/mod_ftp/trunk/modules/ftp/ftp_commands.c
    httpd/mod_ftp/trunk/modules/ftp/ftp_protocol.c

Modified: httpd/mod_ftp/trunk/STATUS
URL: http://svn.apache.org/viewvc/httpd/mod_ftp/trunk/STATUS?rev=602273&r1=602272&r2=602273&view=diff
==============================================================================
--- httpd/mod_ftp/trunk/STATUS (original)
+++ httpd/mod_ftp/trunk/STATUS Fri Dec  7 15:43:52 2007
@@ -33,13 +33,16 @@
 
 RELEASE SHOWSTOPPERS:
 
-  * HELP results are trashed by ABOR OOB data handling hackery.  Must
-    eliminate these from the list of registered commands and handle
-    them properly in the OOB data channel read.  Pity that the client
-    developers never bothered to learn the telnet protocol.
+  * Several clients either trap the 'A' of ABOR in the OOB chunk,
+    or omit some bytes of the IAC IP IAC DM urgent byte sequence.
+    Handle these exceptions cases properly in the OOB data channel read.  
+    Pity that the client developers never bothered to learn the telnet
+    protocol.
 
   * FTPLimit* family of directives share an FTPLimitDBFile across hosts,
     yet fail to scope their tracking records to the corresponding host.
+    Revert the notes in http://svn.apache.org/viewvc?rev=602264&view=rev
+    once corrected.
     
 REALLY NICE TO WRAP THESE UP:
 

Modified: httpd/mod_ftp/trunk/modules/ftp/ftp_commands.c
URL: http://svn.apache.org/viewvc/httpd/mod_ftp/trunk/modules/ftp/ftp_commands.c?rev=602273&r1=602272&r2=602273&view=diff
==============================================================================
--- httpd/mod_ftp/trunk/modules/ftp/ftp_commands.c (original)
+++ httpd/mod_ftp/trunk/modules/ftp/ftp_commands.c Fri Dec  7 15:43:52 2007
@@ -233,13 +233,6 @@
         }
     }
         
-    /* The command was not found, but we may have received an ABOR,
-       adjusted in case the A was OOB */
-    if (!strcmp(key, "BOR")) {
-        cmd = apr_hash_get(FTPMethodHash, "ABOR", APR_HASH_KEY_STRING);
-        return ftp_run_handler(r, cmd, arg);
-    }
-
     return FTP_REPLY_COMMAND_UNRECOGNIZED;
 }
 

Modified: httpd/mod_ftp/trunk/modules/ftp/ftp_protocol.c
URL: http://svn.apache.org/viewvc/httpd/mod_ftp/trunk/modules/ftp/ftp_protocol.c?rev=602273&r1=602272&r2=602273&view=diff
==============================================================================
--- httpd/mod_ftp/trunk/modules/ftp/ftp_protocol.c (original)
+++ httpd/mod_ftp/trunk/modules/ftp/ftp_protocol.c Fri Dec  7 15:43:52 2007
@@ -124,6 +124,12 @@
                  * and that socket is at the OOB mark, we will dump
                  * our current buffer and continue to read the priority
                  * command beyond the OOB mark.
+                 *
+                 * XXX: Note that some bytes of the  IAC IP IAC DM sequence
+                 * may fall back in band, or the leading 'A' of "ABOR" may
+                 * fall out of band, due to poor understanding of telnet
+                 * by many client authors.  We need to take this a step
+                 * further and add logic to correct these cases.
                  */
                 e_next = APR_BUCKET_NEXT(e);
                 if (rv == APR_SUCCESS && APR_BUCKET_IS_SOCKET(e_next)) {