diff --git a/CHANGES b/CHANGES index 2867cb7b7..9fb1522e9 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,20 @@ Changelog +Daniel (27 February 2007) +- Hang Kin Lau found and fixed: When I use libcurl to connect to an https + server through a proxy and have the remote https server port set using the + CURLOPT_PORT option, protocol gets reset to http from https after the first + request. + + User defined URL was modified internally by libcurl and subsequent reuse of + the easy handle may lead to connection using a different protocol (if not + originally http). + + I found that libcurl hardcoded the protocol to "http" when it tries to + regenerate the URL if CURLOPT_PORT is set. I tried to fix the problem as + follows and it's working fine so far + Daniel (25 February 2007) - Adam D. Moss made the HTTP CONNECT procedure less blocking when used from the multi interface. Note that it still does a part of the connection in a diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 8a9e2f02c..97ca13ea4 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -36,6 +36,7 @@ This release includes the following bugfixes: o HTTP CONNECT thru a proxy is now less blocking when the multi interface is used o HTTP Digest header parsing fix for unquoted last word ending with CRLF + o CURLOPT_PORT, HTTP proxy, re-using connections and non-HTTP protocols This release includes the following known bugs: @@ -56,6 +57,6 @@ advice from friends like these: Yang Tse, Manfred Schwarb, Michael Wallner, Jeff Pohlmeyer, Shmulik Regev, Rob Crittenden, Robert A. Monat, Dan Fandrich, Duncan Mac-Vicar Prett, Michal Marek, Robson Braga Araujo, Ian Turner, Linus Nielsen Feltzing, - Ravi Pratap, Adam D. Moss, Jose Kahan + Ravi Pratap, Adam D. Moss, Jose Kahan, Hang Kin Lau Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/url.c b/lib/url.c index 64a145cdb..87a07736e 100644 --- a/lib/url.c +++ b/lib/url.c @@ -3590,8 +3590,8 @@ else { /* we need to create new URL with the new port number */ char *url; - url = aprintf("http://%s:%d%s", conn->host.name, conn->remote_port, - data->reqdata.path); + url = aprintf("%s://%s:%d%s", conn->protostr, conn->host.name, + conn->remote_port, data->reqdata.path); if(!url) return CURLE_OUT_OF_MEMORY;