mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
use the new name and hostname even though an old connection is reused, since
we can re-use a proxy connection that actually has different host names on the same connection
This commit is contained in:
parent
ac0bad2433
commit
e9b763ff05
17
lib/url.c
17
lib/url.c
@ -200,7 +200,7 @@ CURLcode Curl_open(CURL **curl, char *url)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
data-> headersize=HEADERSIZE;
|
||||
data->headersize=HEADERSIZE;
|
||||
|
||||
data->out = stdout; /* default output to stdout */
|
||||
data->in = stdin; /* default input from stdin */
|
||||
@ -1627,12 +1627,17 @@ static CURLcode Connect(struct UrlData *data,
|
||||
* just allocated before we can move along and use the previously
|
||||
* existing one.
|
||||
*/
|
||||
char *path = conn->path; /* setup the current path pointer properly */
|
||||
if(conn->proxyhost)
|
||||
free(conn->proxyhost);
|
||||
free(conn); /* we don't need this new one */
|
||||
struct connectdata *old_conn = conn;
|
||||
char *path = old_conn->path; /* setup the current path pointer properly */
|
||||
if(old_conn->proxyhost)
|
||||
free(old_conn->proxyhost);
|
||||
conn = conn_temp; /* use this connection from now on */
|
||||
free(conn->path); /* free the previous path pointer */
|
||||
|
||||
/* we need these pointers if we speak over a proxy */
|
||||
conn->name = old_conn->name;
|
||||
conn->hostname = old_conn->hostname;
|
||||
|
||||
conn->path = path; /* use this one */
|
||||
conn->ppath = path; /* set this too */
|
||||
|
||||
@ -1640,6 +1645,8 @@ static CURLcode Connect(struct UrlData *data,
|
||||
conn->maxdownload = 0; /* might have been used previously! */
|
||||
conn->bits.reuse = TRUE; /* yes, we're re-using here */
|
||||
|
||||
free(old_conn); /* we don't need this anymore */
|
||||
|
||||
*in_connect = conn; /* return this instead! */
|
||||
|
||||
infof(data, "Re-using existing connection! (#%d)\n", conn->connectindex);
|
||||
|
Loading…
Reference in New Issue
Block a user