config->ftp_skip_ip = TRUE;
config->file_clobber_mode = CLOBBER_DEFAULT;
config->upload_flags = CURLULFLAG_SEEN;
- config->retry_delay_ms = RETRY_SLEEP_DEFAULT;
curlx_dyn_init(&config->postdata, MAX_FILE2MEMORY);
return config;
}
long httpversion;
unsigned long socks5_auth;/* auth bitmask for socks5 proxies */
long req_retry; /* number of retries */
- long retry_delay_ms; /* delay between retries (in milliseconds) */
+ long retry_delay_ms; /* delay between retries (in milliseconds),
+ 0 means increase exponentially */
long retry_maxtime_ms; /* maximum time to keep retrying */
unsigned long mime_options; /* Mime option flags. */
": FTP error"
};
- sleeptime = per->retry_sleep;
if(RETRY_HTTP == retry) {
curl_easy_getinfo(curl, CURLINFO_RETRY_AFTER, &retry_after);
if(retry_after) {
}
}
}
+ if(!sleeptime && !config->retry_delay_ms) {
+ if(!per->retry_sleep)
+ per->retry_sleep = RETRY_SLEEP_DEFAULT;
+ else
+ per->retry_sleep *= 2;
+ if(per->retry_sleep > RETRY_SLEEP_MAX)
+ per->retry_sleep = RETRY_SLEEP_MAX;
+ }
+ if(!sleeptime)
+ sleeptime = per->retry_sleep;
warnf("Problem %s. "
- "Will retry in %ld second%s. "
+ "Will retry in %ld%s%.*ld second%s. "
"%ld retr%s left.",
m[retry], sleeptime/1000L,
+ (sleeptime%1000L ? "." : ""),
+ (sleeptime%1000L ? 3 : 0),
+ sleeptime%1000L,
(sleeptime/1000L == 1 ? "" : "s"),
per->retry_remaining,
(per->retry_remaining > 1 ? "ies" : "y"));
per->retry_remaining--;
- if(!config->retry_delay_ms) {
- per->retry_sleep *= 2;
- if(per->retry_sleep > RETRY_SLEEP_MAX)
- per->retry_sleep = RETRY_SLEEP_MAX;
- }
if(outs->bytes && outs->filename && outs->stream) {
#ifndef __MINGW32CE__