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)) {