diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-07-03 23:52:10 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-07-03 23:52:10 +0200 |
commit | b3786f61dc53adba67dd489e404dc68a4b26575e (patch) | |
tree | 3c13b7b8b4bd9b591052b35a9acb60feed648755 /lib | |
parent | c0cdc68c7eacaa4fda3e2324f8618b6bbe038983 (diff) |
url: make the original string get used on subsequent transfers
... since CURLOPT_URL should follow the same rules as other options:
they remain set until changed or cleared.
Added test 1551 to verify.
Fixes #1631
Closes #1632
Reported-by: Pavel Rochnyak
Diffstat (limited to 'lib')
-rw-r--r-- | lib/transfer.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/transfer.c b/lib/transfer.c index 43e8f64aa..81c056e0e 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -1288,6 +1288,13 @@ CURLcode Curl_pretransfer(struct Curl_easy *data) failf(data, "No URL set!"); return CURLE_URL_MALFORMAT; } + /* since the URL may have been redirected in a previous use of this handle */ + if(data->change.url_alloc) { + /* the already set URL is allocated, free it first! */ + Curl_safefree(data->change.url); + data->change.url_alloc = FALSE; + } + data->change.url = data->set.str[STRING_SET_URL]; /* Init the SSL session ID cache here. We do it here since we want to do it after the *_setopt() calls (that could specify the size of the cache) but |