pretransfer: init state.infilesize here, not in add_handle

... to properly support that options are set to the handle after it is
added to the multi handle.

Bug: http://curl.haxx.se/mail/lib-2015-06/0122.html
Reported-by: Stefan Bühler
This commit is contained in:
Daniel Stenberg 2015-06-23 17:48:37 -07:00
Родитель f44b803f16
Коммит 903b6e0556
2 изменённых файлов: 5 добавлений и 5 удалений

Просмотреть файл

@ -402,11 +402,6 @@ CURLMcode curl_multi_add_handle(CURLM *multi_handle,
/* Point to the multi's connection cache */
data->state.conn_cache = &multi->conn_cache;
if(data->set.httpreq == HTTPREQ_PUT)
data->state.infilesize = data->set.filesize;
else
data->state.infilesize = data->set.postfieldsize;
/* This adds the new entry at the 'end' of the doubly-linked circular
list of SessionHandle structs to try and maintain a FIFO queue so
the pipelined requests are in order. */

Просмотреть файл

@ -1315,6 +1315,11 @@ CURLcode Curl_pretransfer(struct SessionHandle *data)
Curl_safefree(data->info.wouldredirect);
data->info.wouldredirect = NULL;
if(data->set.httpreq == HTTPREQ_PUT)
data->state.infilesize = data->set.filesize;
else
data->state.infilesize = data->set.postfieldsize;
/* If there is a list of cookie files to read, do it now! */
if(data->change.cookielist)
Curl_cookie_loadfiles(data);