Skip to content
Snippets Groups Projects
Commit 949ff971 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Bug report #1812190 (http://curl.haxx.se/bug/view.cgi?id=1812190) points out

that libcurl tried to re-use connections a bit too much when using non-SSL
protocols tunneled over a HTTP proxy.
parent b9a30598
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,11 @@
Changelog
Daniel S (23 October 2007)
- Bug report #1812190 (http://curl.haxx.se/bug/view.cgi?id=1812190) points out
that libcurl tried to re-use connections a bit too much when using non-SSL
protocols tunneled over a HTTP proxy.
Daniel S (22 October 2007)
- Michal Marek forwarded the bug report
https://bugzilla.novell.com/show_bug.cgi?id=332917 about a HTTP redirect to
......
......@@ -41,6 +41,8 @@ This release includes the following bugfixes:
o specifying a proxy with a trailing slash didn't work (unless it also
contained a port number)
o redirect from HTTP to FTP memory problem
o re-used connections a bit too much when using non-SSL protocols tunneled
over a HTTP proxy
This release includes the following known bugs:
......
To be addressed before 7.17.1 (planned release: November 2007)
To be addressed before 7.17.1 (planned release: late October 2007)
=============================
104 - [ curl-Bugs-1812190 ] libcurl can use wrong connection, when using
https
106 -
......@@ -2399,14 +2399,18 @@ ConnectionExists(struct SessionHandle *data,
/* don't do mixed SSL and non-SSL connections */
continue;
if(!needle->bits.httpproxy || needle->protocol&PROT_SSL) {
/* The requested connection does not use a HTTP proxy or it
uses SSL. */
if(needle->bits.proxy != check->bits.proxy)
/* don't do mixed proxy and non-proxy connections */
continue;
if(!(needle->protocol&PROT_SSL) && check->bits.httpproxy)
/* we don't do SSL but the cached connection has a proxy,
then don't match this */
continue;
if(!needle->bits.httpproxy || needle->protocol&PROT_SSL ||
(needle->bits.httpproxy && check->bits.httpproxy &&
needle->bits.tunnel_proxy && check->bits.tunnel_proxy &&
strequal(needle->proxy.name, check->proxy.name) &&
(needle->port == check->port))) {
/* The requested connection does not use a HTTP proxy or it uses SSL or
it is a non-SSL protocol tunneled over the same http proxy name and
port number */
if(strequal(needle->protostr, check->protostr) &&
strequal(needle->host.name, check->host.name) &&
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment