diff --git a/src/main.c b/src/main.c index f35fc62d54..5585c1755b 100644 --- a/src/main.c +++ b/src/main.c @@ -5439,8 +5439,12 @@ operate(struct Configurable *config, int argc, argv_item_t argv[]) if(CURLE_OPERATION_TIMEDOUT == res) /* retry timeout always */ retry = RETRY_TIMEOUT; - else if(CURLE_OK == res) { - /* Check for HTTP transient errors */ + else if((CURLE_OK == res) || + (config->failonerror && + (CURLE_HTTP_RETURNED_ERROR == res))) { + /* If it returned OK. _or_ failonerror was enabled and it + returned due to such an error, check for HTTP transient + errors to retry on. */ char *this_url=NULL; curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &this_url); if(this_url &&