diff options
-rw-r--r-- | CHANGES | 11 | ||||
-rw-r--r-- | RELEASE-NOTES | 5 | ||||
-rw-r--r-- | lib/url.c | 5 |
3 files changed, 20 insertions, 1 deletions
@@ -6,6 +6,17 @@ 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 diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 9ecd2f975..4318a8b62 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -17,6 +17,8 @@ This release includes the following bugfixes: 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: @@ -29,6 +31,7 @@ Other curl-related news: 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) @@ -2509,6 +2509,11 @@ ConnectionExists(struct SessionHandle *data, /* 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 && |