aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2009-11-20 13:27:21 +0000
committerDaniel Stenberg <daniel@haxx.se>2009-11-20 13:27:21 +0000
commita41493b3b0eaa83a907b4c3dbbab1297791ead97 (patch)
tree13cfa43e22427c97128ac43ab5aa987f07b15e53
parent6da73d09f1744b9363c851854e71aaa175a9936c (diff)
- Jad Chamcham pointed out a bug with connection re-use. If a connection had
CURLOPT_HTTPPROXYTUNNEL enabled over a proxy, a subsequent request using the same proxy with the tunnel option disabled would still wrongly re-use that previous connection and the outcome would only be badness.
-rw-r--r--CHANGES6
-rw-r--r--RELEASE-NOTES3
-rw-r--r--lib/url.c1
3 files changed, 9 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 0fc7bd32c..c8333b0c8 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,12 @@
Changelog
+Daniel Stenberg (20 Nov 2009)
+- Jad Chamcham pointed out a bug with connection re-use. If a connection had
+ CURLOPT_HTTPPROXYTUNNEL enabled over a proxy, a subsequent request using the
+ same proxy with the tunnel option disabled would still wrongly re-use that
+ previous connection and the outcome would only be badness.
+
Daniel Stenberg (17 Nov 2009)
- Constantine Sapuntzakis provided another fix for the DNS cache that could
end up with entries that wouldn't time-out:
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index aa5be1d12..cae130cd3 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -23,6 +23,7 @@ This release includes the following bugfixes:
o configure --with-nss is set but not "yes"
o don't store LDFLAGS in pkg-config file
o never-pruned DNS cached entries
+ o HTTP proxy tunnel re-used connection even if tunnel got disabled
This release includes the following known bugs:
@@ -33,6 +34,6 @@ advice from friends like these:
Yang Tse, Kamil Dudka, Christian Schmitz, Constantine Sapuntzakis,
Marco Maggi, Camille Moncelier, Claes Jakobsson, Kevin Baughman,
- Marc Kleine-Budde
+ Marc Kleine-Budde, Jad Chamcham
Thanks! (and sorry if I forgot to mention someone)
diff --git a/lib/url.c b/lib/url.c
index 6cd1f60da..54d2ff929 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -2758,6 +2758,7 @@ ConnectionExists(struct SessionHandle *data,
is the checked one using the same host, port and type? */
if(check->bits.proxy &&
(needle->proxytype == check->proxytype) &&
+ (needle->bits.tunnel_proxy == check->bits.tunnel_proxy) &&
Curl_raw_equal(needle->proxy.name, check->proxy.name) &&
needle->port == check->port) {
/* This is the same proxy connection, use it! */