diff --git a/CHANGES b/CHANGES index 1801cf552..ab0ba5d24 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,12 @@ Changelog +Daniel (8 August 2005) +- Jon Grubbs filed bug report #1249962 which identified a problem with NTLM on + a HTTP proxy if an FTP URL was given. libcurl now properly switches to pure + HTTP internally when an HTTP proxy is used, even for FTP URLs. The problem + would also occur with other multi-pass auth methods. + Daniel (7 August 2005) - When curl is built with GnuTLS, curl-config didn't include "SSL" when --features was used. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 114698340..b6a02ffea 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -5,7 +5,7 @@ Curl and libcurl 7.14.1 Available command line options: 107 Available curl_easy_setopt() options: 122 Number of public functions in libcurl: 46 - Amount of public web site mirrors: 24 + Amount of public web site mirrors: 25 Number of known libcurl bindings: 31 Number of contributors: 437 @@ -18,6 +18,7 @@ This release includes the following changes: This release includes the following bugfixes: + o using NTLM over proxy with an FTP URL o curl-config --features now displays SSL when built with GnuTLS too o CURLOPT_HTTPGET, CURLOPT_POST and CURLOPT_HTTPPOST reset CURLOPT_NOBODY o builds fine on AmigaOS again @@ -50,6 +51,6 @@ advice from friends like these: John McGowan, Georg Wicherski, Andres Garcia, Eric Cooper, Todd Kulesza, Tupone Alfredo, Gisle Vanem, David Shaw, Andrew Bushnell, Dan Fandrich, - Adrian Schuur, Diego Casorran, Peteris Krumins + Adrian Schuur, Diego Casorran, Peteris Krumins, Jon Grubbs Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/url.c b/lib/url.c index f587b79f1..3698affd1 100644 --- a/lib/url.c +++ b/lib/url.c @@ -2651,9 +2651,13 @@ static CURLcode CreateConnection(struct SessionHandle *data, } if(proxy && *proxy) { + long bits = conn->protocol & (PROT_HTTPS|PROT_SSL); data->change.proxy = proxy; data->change.proxy_alloc=TRUE; /* this needs to be freed later */ conn->bits.httpproxy = TRUE; + + /* force this to become HTTP */ + conn->protocol = PROT_HTTP | bits; } } /* if (!nope) - it wasn't specified non-proxy */ } /* NO_PROXY wasn't specified or '*' */ @@ -2789,6 +2793,7 @@ static CURLcode CreateConnection(struct SessionHandle *data, #ifndef CURL_DISABLE_HTTP conn->curl_do = Curl_http; conn->curl_done = Curl_http_done; + conn->protocol = PROT_HTTP; /* switch to HTTP */ #else failf(data, "FTP over http proxy requires HTTP support built-in!"); return CURLE_UNSUPPORTED_PROTOCOL;