aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES14
-rw-r--r--RELEASE-NOTES5
-rw-r--r--lib/http.c13
3 files changed, 29 insertions, 3 deletions
diff --git a/CHANGES b/CHANGES
index 939f58ce5..69069e467 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,20 @@
Changelog
+Daniel S (26 Jan 2008)
+- Kevin Reed filed bug report #1879375
+ (http://curl.haxx.se/bug/view.cgi?id=1879375) which describes how libcurl
+ got lost in this scenario: proxy tunnel (or HTTPS over proxy), ask to do any
+ proxy authentication and the proxy replies with an auth (like NTLM) and then
+ closes the connection after that initial informational response.
+
+ libcurl would not properly re-initialize the connection to the proxy and
+ continue the auth negotiation like supposed. It does now however, as it will
+ now detect if one or more authentication methods were available and asked
+ for, and will thus retry the connection and continue from there.
+
+- I made the progress callback get called properly during proxy CONNECT.
+
Daniel S (23 Jan 2008)
- Igor Franchuk pointed out that CURLOPT_COOKIELIST set to "ALL" leaked
memory, and so did "SESS". Fixed now.
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 4cce7aa14..21523441e 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -61,6 +61,8 @@ This release includes the following bugfixes:
o curl_multi_remove_handle() on a handle that is in used for a pipeline now
break that pipeline
o CURLOPT_COOKIELIST memory leaks
+ o progress meter/callback during http proxy CONNECT requests
+ o auth for http proxy when the proxy closes connection after first response
This release includes the following known bugs:
@@ -86,6 +88,7 @@ advice from friends like these:
Gilles Blanc, David Wright, Vikram Saxena, Mateusz Loskot, Gary Maxwell,
Dmitry Kurochkin, Mohun Biswas, Richard Atterer, Maxim Perenesenko,
Daniel Egger, Jeff Johnson, Nikitinskit Dmitriy, Georg Lippitsch, Eric Landes,
- Joe Malicki, Nathan Coulter, Lau Hang Kin, Judson Bishop, Igor Franchuk
+ Joe Malicki, Nathan Coulter, Lau Hang Kin, Judson Bishop, Igor Franchuk,
+ Kevin Reed
Thanks! (and sorry if I forgot to mention someone)
diff --git a/lib/http.c b/lib/http.c
index 89f5c7615..d537407d2 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -1409,8 +1409,15 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
keepon = FALSE;
else if(gotbytes <= 0) {
keepon = FALSE;
- error = SELECT_ERROR;
- failf(data, "Proxy CONNECT aborted");
+ if(data->set.proxyauth && data->state.authproxy.avail) {
+ /* proxy auth was requested and there was proxy auth available,
+ then deem this as "mere" proxy disconnect */
+ conn->bits.proxy_connect_closed = TRUE;
+ }
+ else {
+ error = SELECT_ERROR;
+ failf(data, "Proxy CONNECT aborted");
+ }
}
else {
/*
@@ -1590,6 +1597,8 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
}
break;
} /* switch */
+ if(Curl_pgrsUpdate(conn))
+ return CURLE_ABORTED_BY_CALLBACK;
} /* while there's buffer left and loop is requested */
if(error)