mirror of
https://github.com/moparisthebest/curl
synced 2024-12-23 16:48:49 -05:00
transfer: move retrycount from connect struct to easy handle
This flag was applied to the connection struct that is released on retry. These changes move the retry counter into Curl_easy struct that lives across retries and retains the new connection. Reported-by: Cherish98 on github Fixes #5794 Closes #5800
This commit is contained in:
parent
43c68d842e
commit
50dd05a552
@ -1804,12 +1804,14 @@ CURLcode Curl_retry_request(struct connectdata *conn,
|
||||
}
|
||||
if(retry) {
|
||||
#define CONN_MAX_RETRIES 5
|
||||
if(conn->retrycount++ >= CONN_MAX_RETRIES) {
|
||||
if(data->state.retrycount++ >= CONN_MAX_RETRIES) {
|
||||
failf(data, "Connection died, tried %d times before giving up",
|
||||
CONN_MAX_RETRIES);
|
||||
data->state.retrycount = 0;
|
||||
return CURLE_SEND_ERROR;
|
||||
}
|
||||
infof(conn->data, "Connection died, retrying a fresh connect\n");
|
||||
infof(conn->data, "Connection died, retrying a fresh connect\
|
||||
(retry count: %d)\n", data->state.retrycount);
|
||||
*url = strdup(conn->data->change.url);
|
||||
if(!*url)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
|
@ -1090,7 +1090,6 @@ struct connectdata {
|
||||
struct http_connect_state *connect_state; /* for HTTP CONNECT */
|
||||
struct connectbundle *bundle; /* The bundle we are member of */
|
||||
int negnpn; /* APLN or NPN TLS negotiated protocol, CURL_HTTP_VERSION* */
|
||||
int retrycount; /* number of retries on a new connection */
|
||||
#ifdef USE_UNIX_SOCKETS
|
||||
char *unix_domain_socket;
|
||||
#endif
|
||||
@ -1296,6 +1295,8 @@ struct UrlState {
|
||||
/* Points to the connection cache */
|
||||
struct conncache *conn_cache;
|
||||
|
||||
int retrycount; /* number of retries on a new connection */
|
||||
|
||||
/* buffers to store authentication data in, as parsed from input options */
|
||||
struct curltime keeps_speed; /* for the progress meter really */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user