]> granicus.if.org Git - curl/commitdiff
- When using the multi interface with FTP and you asked for NOBODY, you did no
authorDaniel Stenberg <daniel@haxx.se>
Mon, 31 Aug 2009 20:49:30 +0000 (20:49 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 31 Aug 2009 20:49:30 +0000 (20:49 +0000)
  QUOTE commands and the request used the same path as the connection had
  already changed to, it would decide that no commands would be necessary for
  the "DO" action and that was not handled properly but libcurl would instead
  hang.

CHANGES
RELEASE-NOTES
lib/ftp.c

diff --git a/CHANGES b/CHANGES
index 8a77b0487b3554e58f6af568b6a6ff19ac4de239..050f161b07057f0f22c08a60e0e4c02c49dbb2a2 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,13 @@
 
                                   Changelog
 
+Daniel Stenberg (31 Aug 2009)
+- When using the multi interface with FTP and you asked for NOBODY, you did no
+  QUOTE commands and the request used the same path as the connection had
+  already changed to, it would decide that no commands would be necessary for
+  the "DO" action and that was not handled properly but libcurl would instead
+  hang.
+
 Kamil Dudka (28 Aug 2009)
 - Improved error message for not matching certificate subject name in
   libcurl-NSS. Originally reported at:
index fbdd93ff4d8913779fef519c3779ce952d012b2f..d35158624234572c8de7e55ade7790e1e5a6cb3e 100644 (file)
@@ -10,6 +10,7 @@ Curl and libcurl 7.19.7
 This release includes the following changes:
 
  o -T. is now for non-blocking uploading from stdin
+ o SYST handling on FTP for OS/400 FTP server cases
 
 This release includes the following bugfixes:
 
@@ -21,6 +22,9 @@ This release includes the following bugfixes:
  o missing strdup() return code check
  o CURLOPT_PROXY_TRANSFER_MODE could pass along wrong syntax
  o configure --with-gnutls=PATH fixed
+ o ftp response reader bug on failed control connections
+ o improved NSS error message on failed host name verifications
+ o ftp NOBODY on re-used connection hang
 
 This release includes the following known bugs:
 
index 26cf197953f421f305067af89f2577155ec2e4d7..99115dda63ef2fcf32603e8e928632ed578d311b 100644 (file)
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -3026,10 +3026,14 @@ static CURLcode ftp_multi_statemach(struct connectdata *conn,
   }
   else if(rc != 0) {
     result = ftp_statemach_act(conn);
-    *done = (bool)(ftpc->state == FTP_STOP);
   }
   /* if rc == 0, then select() timed out */
 
+  /* Check for the state outside of the Curl_socket_ready() return code checks
+     since at times we are in fact already in this state when this function
+     gets called. */
+  *done = (bool)(ftpc->state == FTP_STOP);
+
   return result;
 }