From 058fb3355715747e754ede5395c52390ec3394be Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sun, 20 Mar 2011 23:24:45 +0100 Subject: 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 --- lib/transfer.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/transfer.c') 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; } -- cgit v1.2.3