mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
HTTP: retry failed HEAD requests too
Mark's new document about HTTP Retries (https://mnot.github.io/I-D/httpbis-retry/) made me check our code and I spotted that we don't retry failed HEAD requests which seems totally inconsistent and I can't see any reason for that separate treatment. So, no separate treatment for HEAD starting now. A HTTP request sent over a reused connection that gets cut off before a single byte is received will be retried on a fresh connection. Made-aware-by: Mark Nottingham
This commit is contained in:
parent
04f84edd5b
commit
31e33a9a46
@ -1890,13 +1890,12 @@ CURLcode Curl_retry_request(struct connectdata *conn,
|
|||||||
return CURLE_OK;
|
return CURLE_OK;
|
||||||
|
|
||||||
if((data->req.bytecount + data->req.headerbytecount == 0) &&
|
if((data->req.bytecount + data->req.headerbytecount == 0) &&
|
||||||
conn->bits.reuse &&
|
conn->bits.reuse &&
|
||||||
!data->set.opt_no_body &&
|
(data->set.rtspreq != RTSPREQ_RECEIVE)) {
|
||||||
(data->set.rtspreq != RTSPREQ_RECEIVE)) {
|
/* We didn't get a single byte when we attempted to re-use a
|
||||||
/* We got no data, we attempted to re-use a connection and yet we want a
|
connection. This might happen if the connection was left alive when we
|
||||||
"body". This might happen if the connection was left alive when we were
|
were done using it before, but that was closed when we wanted to use it
|
||||||
done using it before, but that was closed when we wanted to read from
|
again. Bad luck. Retry the same request on a fresh connect! */
|
||||||
it again. Bad luck. Retry the same request on a fresh connect! */
|
|
||||||
infof(conn->data, "Connection died, retrying a fresh connect\n");
|
infof(conn->data, "Connection died, retrying a fresh connect\n");
|
||||||
*url = strdup(conn->data->change.url);
|
*url = strdup(conn->data->change.url);
|
||||||
if(!*url)
|
if(!*url)
|
||||||
|
Loading…
Reference in New Issue
Block a user