aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2009-08-31 20:49:30 +0000
committerDaniel Stenberg <daniel@haxx.se>2009-08-31 20:49:30 +0000
commit4e9d3c26ed74ec7a00cfc32170dc7289589586e8 (patch)
treef29baf4a63a01c34319c4eec719098e1f3e3ce49 /lib
parentf3bd0c3fc3a69843f5f67f61c6a75fc705fe5078 (diff)
- 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.
Diffstat (limited to 'lib')
-rw-r--r--lib/ftp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/ftp.c b/lib/ftp.c
index 26cf19795..99115dda6 100644
--- 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;
}