]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
smtp_doing: don't call smtp_dophase_done() if already failed
authorSteve Holme <steve_holme@hotmail.com>
Sat, 29 Dec 2012 23:06:25 +0000 (23:06 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 29 Dec 2012 23:06:25 +0000 (23:06 +0000)
Applied the POP3 fix from commit 2897ce7dc2e1 so smtp_dophase_done()
isn't called if smtp_multi_statemach() fails.

lib/smtp.c

index b8ab8976cb11b51fbdd7715dec5b8ac27bbcde2c..7295e3efae492dedc6eb8b697a10581a577077fc 100644 (file)
@@ -1591,11 +1591,13 @@ static CURLcode smtp_doing(struct connectdata *conn, bool *dophase_done)
 
   if(result)
     DEBUGF(infof(conn->data, "DO phase failed\n"));
-  else
-    DEBUGF(infof(conn->data, "DO phase is complete\n"));
+  else {
+    if(*dophase_done) {
+      result = smtp_dophase_done(conn, FALSE /* not connected */);
 
-  if(*dophase_done)
-    smtp_dophase_done(conn, FALSE /* not connected */);
+      DEBUGF(infof(conn->data, "DO phase is complete\n"));
+    }
+  }
 
   return result;
 }