Changelog
+Daniel Stenberg (19 Nov 2008)
+- Andreas Wurf and Markus Koetter helped me analyze a problem that Andreas got
+ when uploading files to a single FTP server using multiple easy handle
+ handles with the multi interface. Occasionally a handle would stall in
+ mysterious ways.
+
+ The problem turned out to be a side-effect of the ConnectionExists()
+ function's eagerness to re-use a handle for HTTP pipelining so it would
+ select it even if already being in use, due to an inadequate check for its
+ chances of being used for pipelnining.
+
Daniel Fandrich (17 Nov 2008)
- Added more compiler warning options for gcc 4.3
o fixed several calls to memory functions that didn't check return codes
o memory leak for SSL connects with libcurl/NSS when CURLOPT_ISSUERCERT was
used
+ o re-use of connections with the multi interface when multiple handles used
+ the same server
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:
- Yang Tse, Daniel Fandrich, Jim Meyering, Christian Krause
+ Yang Tse, Daniel Fandrich, Jim Meyering, Christian Krause, Andreas Wurf,
+ Markus Koetter
Thanks! (and sorry if I forgot to mention someone)
/* don't do mixed proxy and non-proxy connections */
continue;
+ if(!canPipeline && check->inuse)
+ /* this request can't be pipelined but the checked connection is already
+ in use so we skip it */
+ continue;
+
if(!needle->bits.httpproxy || needle->protocol&PROT_SSL ||
(needle->bits.httpproxy && check->bits.httpproxy &&
needle->bits.tunnel_proxy && check->bits.tunnel_proxy &&