Make the do_complete() function not get called until the DO actually is
authorDaniel Stenberg <daniel@haxx.se>
Wed, 21 Nov 2007 22:37:55 +0000 (22:37 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 21 Nov 2007 22:37:55 +0000 (22:37 +0000)
compelete, which bascially means when used with the multi interface

lib/url.c

index 7fee3da..0415d51 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -4575,8 +4575,8 @@ CURLcode Curl_do(struct connectdata **connp, bool *done)
       }
     }
 
-    if(result == CURLE_OK)
-      /* pre readwrite must be called after the protocol-specific DO function */
+    if((result == CURLE_OK) && *done)
+      /* do_complete must be called after the protocol-specific DO function */
       do_complete(conn);
   }
   return result;
@@ -4589,6 +4589,10 @@ CURLcode Curl_do_more(struct connectdata *conn)
   if(conn->handler->do_more)
     result = conn->handler->do_more(conn);
 
+  if(result == CURLE_OK)
+    /* do_complete must be called after the protocol-specific DO function */
+    do_complete(conn);
+
   return result;
 }