Changelog
Daniel S (29 Jan 2008)
+- Dmitry Kurochkin fixed Curl_done() for pipelining, as it could previously
+ crash!
+
- Michal Marek fixed minor mistake in test case 553 that prevented it from
working on other IP-addresses or port numbers.
This release includes the following bugfixes:
- o
+ o improved pipelining
This release includes the following known bugs:
This release would not have looked like this without help, code, reports and
advice from friends like these:
- Michal Marek
+ Michal Marek, Dmitry Kurochkin
Thanks! (and sorry if I forgot to mention someone)
wants NTLM and close the connection to the initial CONNECT response:
http://curl.haxx.se/bug/view.cgi?id=1879375
-50. Curl_done() and pipelning aren't totally cool together:
- http://curl.haxx.se/mail/lib-2008-01/0330.html
-
49. If using --retry and the transfer timeouts (possibly due to using -m or
-y/-Y) the next attempt doesn't resume the transfer properly from what was
downloaded in the previous attempt but will truncate and restart at the
Curl_expire(data, 0); /* stop timer */
- if(conn->bits.done)
- return CURLE_OK; /* Curl_done() has already been called */
-
- conn->bits.done = TRUE; /* called just now! */
-
if(Curl_removeHandleFromPipeline(data, conn->recv_pipe) &&
conn->readchannel_inuse)
conn->readchannel_inuse = FALSE;
conn->writechannel_inuse = FALSE;
Curl_removeHandleFromPipeline(data, conn->pend_pipe);
+ if(conn->bits.done ||
+ (conn->send_pipe->size + conn->recv_pipe->size != 0 &&
+ !data->set.reuse_forbid &&
+ !conn->bits.close))
+ /* Stop if Curl_done() has already been called or pipeline
+ is not empty and we do not have to close connection. */
+ return CURLE_OK;
+
+ conn->bits.done = TRUE; /* called just now! */
+
/* Cleanup possible redirect junk */
if(data->req.newurl) {
free(data->req.newurl);