1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

retry: consider retrying even if -f is used

The --retry logic does retry HTTP when some specific response codes are
returned, but because the -f option sets the CURLOPT_FAILONERROR to
libcurl, the return codes are different for such situations and then the
curl tool failed to consider it for retrying.

Reported by: Mike Power
Bug: http://curl.haxx.se/bug/view.cgi?id=3037362
This commit is contained in:
Daniel Stenberg 2010-08-02 00:10:18 +02:00
parent 811fcccfc9
commit f38e52071e

View File

@ -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 &&