peer->backoff_time_msecs = set->connect_backoff_time_msecs;
else
peer->backoff_time_msecs *= 2;
+ if (peer->backoff_time_msecs > set->connect_backoff_max_time_msecs)
+ peer->backoff_time_msecs = set->connect_backoff_max_time_msecs;
}
if (pending > 1) {
#define HTTP_CLIENT_CONTINUE_TIMEOUT_MSECS (1000*2)
#define HTTP_CLIENT_DEFAULT_REQUEST_TIMEOUT_MSECS (1000*60*5)
#define HTTP_CLIENT_DEFAULT_BACKOFF_TIME_MSECS (100)
+#define HTTP_CLIENT_DEFAULT_BACKOFF_MAX_TIME_MSECS (1000*60)
enum http_response_payload_type;
set->connect_backoff_time_msecs == 0 ?
HTTP_CLIENT_DEFAULT_BACKOFF_TIME_MSECS :
set->connect_backoff_time_msecs;
+ client->set.connect_backoff_max_time_msecs =
+ set->connect_backoff_max_time_msecs == 0 ?
+ HTTP_CLIENT_DEFAULT_BACKOFF_MAX_TIME_MSECS :
+ set->connect_backoff_max_time_msecs;
client->set.no_auto_redirect = set->no_auto_redirect;
client->set.no_ssl_tunnel = set->no_ssl_tunnel;
client->set.max_redirects = set->max_redirects;
/* Initial backoff time; doubled at each connection failure */
unsigned int connect_backoff_time_msecs;
+ /* Maximum backoff time */
+ unsigned int connect_backoff_max_time_msecs;
/* response header limits */
struct http_header_limits response_hdr_limits;