mirror of
https://github.com/curl/curl.git
synced 2026-08-25 18:33:42 +03:00
curl: Add --retry-connrefused
to consider ECONNREFUSED as a transient error. Closes #1064
This commit is contained in:
parent
ea80a2dcfc
commit
cdfda3ee82
5 changed files with 24 additions and 1 deletions
|
|
@ -1441,6 +1441,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||
enum {
|
||||
RETRY_NO,
|
||||
RETRY_TIMEOUT,
|
||||
RETRY_CONNREFUSED,
|
||||
RETRY_HTTP,
|
||||
RETRY_FTP,
|
||||
RETRY_LAST /* not used */
|
||||
|
|
@ -1452,6 +1453,13 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||
(CURLE_FTP_ACCEPT_TIMEOUT == result))
|
||||
/* retry timeout always */
|
||||
retry = RETRY_TIMEOUT;
|
||||
else if(config->retry_connrefused &&
|
||||
(CURLE_COULDNT_CONNECT == result)) {
|
||||
long oserrno;
|
||||
curl_easy_getinfo(curl, CURLINFO_OS_ERRNO, &oserrno);
|
||||
if(ECONNREFUSED == oserrno)
|
||||
retry = RETRY_CONNREFUSED;
|
||||
}
|
||||
else if((CURLE_OK == result) ||
|
||||
(config->failonerror &&
|
||||
(CURLE_HTTP_RETURNED_ERROR == result))) {
|
||||
|
|
@ -1499,7 +1507,11 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||
|
||||
if(retry) {
|
||||
static const char * const m[]={
|
||||
NULL, "timeout", "HTTP error", "FTP error"
|
||||
NULL,
|
||||
"timeout",
|
||||
"connection refused",
|
||||
"HTTP error",
|
||||
"FTP error"
|
||||
};
|
||||
|
||||
warnf(config->global, "Transient problem: %s "
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue