mirror of
https://github.com/curl/curl.git
synced 2026-07-29 00:03:12 +03:00
- 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.
This commit is contained in:
parent
305f4d92ef
commit
797bc8504c
3 changed files with 20 additions and 1 deletions
|
|
@ -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 &&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue