ftp_doing: bail out on error properly
authorDaniel Stenberg <daniel@haxx.se>
Mon, 8 Aug 2011 08:41:35 +0000 (10:41 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 8 Aug 2011 08:43:09 +0000 (10:43 +0200)
When a failure has been detected we must abort immdiately.

Bug: http://curl.haxx.se/mail/lib-2011-07/0177.html
Reported by: "Spoon Man"

lib/ftp.c

index c30d809..689eda2 100644 (file)
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -4094,12 +4094,13 @@ static CURLcode ftp_dophase_done(struct connectdata *conn,
 
 /* called from multi.c while DOing */
 static CURLcode ftp_doing(struct connectdata *conn,
-                               bool *dophase_done)
+                          bool *dophase_done)
 {
-  CURLcode result;
-  result = ftp_multi_statemach(conn, dophase_done);
+  CURLcode result = ftp_multi_statemach(conn, dophase_done);
 
-  if(*dophase_done) {
+  if(result)
+    DEBUGF(infof(conn->data, "DO phase failed\n"));
+  else if(*dophase_done) {
     result = ftp_dophase_done(conn, FALSE /* not connected */);
 
     DEBUGF(infof(conn->data, "DO phase is complete\n"));