From: Daniel Stenberg Date: Sun, 20 Mar 2011 22:24:45 +0000 (+0100) Subject: retry-request: rewind if data was sent X-Git-Tag: curl-7_21_5~59 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=058fb3355715747e754ede5395c52390ec3394be;p=curl retry-request: rewind if data was sent When libcurl sends a HTTP request on a re-used connection and detects it being closed (ie no data at all was read from it), it is important to rewind if any data in the request was sent using the read callback or was read from file, as otherwise the retried request will be broken. Reported by: Chris Smowton Bug: http://curl.haxx.se/bug/view.cgi?id=3195205 --- diff --git a/lib/transfer.c b/lib/transfer.c index 266b83441..c33cf13fd 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -2085,6 +2085,9 @@ CURLcode Curl_retry_request(struct connectdata *conn, prevent i.e HTTP transfers to return error just because nothing has been transfered! */ + + if(data->state.proto.http->writebytecount) + Curl_readrewind(conn); } return CURLE_OK; }