cURL / Mailing Lists / curl-users / Single Mail

curl-users

Protocol resets (to http) when setting both proxy (CURLOPT_PROXY) and remote port (CURLOPT_PORT)

From: Lau, Hang Kin <hklau_at_avistar.com>
Date: Mon, 26 Feb 2007 16:29:37 -0800

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:
 
 
Index: lib/url.c
===================================================================
--- lib/url.c (revision 25525)
+++ lib/url.c (working copy)
@@ -3475,7 +3475,7 @@
       /* 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,
+ url = aprintf("%s://%s:%d%s", conn->protostr, conn->host.name,
conn->remote_port,
                     data->reqdata.path);
       if(!url)
         return CURLE_OUT_OF_MEMORY;
Received on 2007-02-27