pop3_doing: don't call pop3_dophase_done() if already failed
authorDaniel Stenberg <daniel@haxx.se>
Sat, 15 Dec 2012 14:31:38 +0000 (15:31 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 24 Dec 2012 22:43:42 +0000 (23:43 +0100)
... it also clobbered the 'result' return value so that it wouldn't
return the error back to the parent function properly, which broke test
809 when run with 'multi-always'.

lib/pop3.c

index 391f4e7..7fb4f5c 100644 (file)
@@ -1554,7 +1554,7 @@ static CURLcode pop3_doing(struct connectdata *conn, bool *dophase_done)
   CURLcode result;
   result = pop3_multi_statemach(conn, dophase_done);
 
-  if(*dophase_done) {
+  if(!result && *dophase_done) {
     result = pop3_dophase_done(conn, FALSE /* not connected */);
 
     DEBUGF(infof(conn->data, "DO phase is complete\n"));