EVENT_REASON_CODE);
/* Default to client-wide settings: */
- req->max_attempts = client->set->max_attempts;
+ req->max_attempts = client->set->request_max_attempts;
req->attempt_timeout_msecs = client->set->request_timeout_msecs;
if (strcasecmp(method, "GET") == 0 ||
strcasecmp(method, "HEAD") == 0) {
- if (client->set->read_max_attempts != 0)
- req->max_attempts = client->set->read_max_attempts;
+ if (client->set->read_request_max_attempts != 0)
+ req->max_attempts = client->set->read_request_max_attempts;
if (client->set->read_request_timeout_msecs != 0) {
req->attempt_timeout_msecs =
client->set->read_request_timeout_msecs;
}
} else if (strcasecmp(method, "PUT") == 0 ||
strcasecmp(method, "POST") == 0) {
- if (client->set->write_max_attempts != 0)
- req->max_attempts = client->set->write_max_attempts;
+ if (client->set->write_request_max_attempts != 0)
+ req->max_attempts = client->set->write_request_max_attempts;
if (client->set->write_request_timeout_msecs != 0) {
req->attempt_timeout_msecs =
client->set->write_request_timeout_msecs;
}
} else if (strcasecmp(method, "DELETE") == 0) {
- if (client->set->delete_max_attempts != 0)
- req->max_attempts = client->set->delete_max_attempts;
+ if (client->set->delete_request_max_attempts != 0)
+ req->max_attempts = client->set->delete_request_max_attempts;
if (client->set->delete_request_timeout_msecs != 0) {
req->attempt_timeout_msecs =
client->set->delete_request_timeout_msecs;
return;
}
- i_assert(req->redirects <= req->client->set->max_redirects);
- if (++req->redirects > req->client->set->max_redirects) {
- if (req->client->set->max_redirects > 0) {
+ i_assert(req->redirects <= req->client->set->request_max_redirects);
+ if (++req->redirects > req->client->set->request_max_redirects) {
+ if (req->client->set->request_max_redirects > 0) {
http_client_request_error(
&req,
HTTP_CLIENT_REQUEST_ERROR_INVALID_REDIRECT,
t_strdup_printf(
"Redirected more than %d times",
- req->client->set->max_redirects));
+ req->client->set->request_max_redirects));
} else {
http_client_request_error(
&req,
DEF(BOOL_HIDDEN, auto_retry),
DEF(BOOL, ssl_tunnel),
- DEF(UINT, max_redirects),
- DEF(UINT, max_attempts),
- DEF(UINT, read_max_attempts),
- DEF(UINT, write_max_attempts),
- DEF(UINT, delete_max_attempts),
+ DEF(UINT, request_max_redirects),
+ DEF(UINT, request_max_attempts),
+ DEF(UINT, read_request_max_attempts),
+ DEF(UINT, write_request_max_attempts),
+ DEF(UINT, delete_request_max_attempts),
DEF(UINT, max_connect_attempts),
DEF_MSECS(TIME_MSECS_HIDDEN, connect_backoff_time),
.auto_retry = TRUE,
.ssl_tunnel = TRUE,
- .max_redirects = 0,
- .max_attempts = 0,
- .read_max_attempts = 0,
- .write_max_attempts = 0,
- .delete_max_attempts = 0,
+ .request_max_redirects = 0,
+ .request_max_attempts = 0,
+ .read_request_max_attempts = 0,
+ .write_request_max_attempts = 0,
+ .delete_request_max_attempts = 0,
.max_connect_attempts = 0,
.connect_backoff_time_msecs = HTTP_CLIENT_DEFAULT_BACKOFF_TIME_MSECS,
test_client_defaults(&http_client_set);
http_client_set.max_connect_attempts = 3;
- http_client_set.max_attempts = 3;
+ http_client_set.request_max_attempts = 3;
test_begin("connection lost prematurely");
test_run_client_server(&http_client_set,
test_client_defaults(&http_client_set);
http_client_set.connect_timeout_msecs = 1000;
- http_client_set.max_attempts = 1;
+ http_client_set.request_max_attempts = 1;
test_begin("connection timed out");
test_run_client_server(&http_client_set,
test_client_defaults(&http_client_set);
test_begin("invalid redirect: not accepted");
- http_client_set.max_redirects = 0;
+ http_client_set.request_max_redirects = 0;
test_run_client_server(&http_client_set,
test_client_invalid_redirect,
test_server_invalid_redirect1, 1, NULL);
test_end();
test_begin("invalid redirect: bad location");
- http_client_set.max_redirects = 1;
+ http_client_set.request_max_redirects = 1;
test_run_client_server(&http_client_set,
test_client_invalid_redirect,
test_server_invalid_redirect2, 1, NULL);
test_end();
test_begin("invalid redirect: too many");
- http_client_set.max_redirects = 1;
+ http_client_set.request_max_redirects = 1;
test_run_client_server(&http_client_set,
test_client_invalid_redirect,
test_server_invalid_redirect3, 3, NULL);
struct http_client_settings http_client_set;
test_client_defaults(&http_client_set);
- http_client_set.max_redirects = 1;
+ http_client_set.request_max_redirects = 1;
test_begin("unseekable redirect");
test_run_client_server(&http_client_set,
struct http_client_settings http_client_set;
test_client_defaults(&http_client_set);
- http_client_set.max_attempts = 3;
+ http_client_set.request_max_attempts = 3;
test_begin("unseekable retry");
test_run_client_server(&http_client_set,
struct http_client_settings http_client_set;
test_client_defaults(&http_client_set);
- http_client_set.max_attempts = 2;
+ http_client_set.request_max_attempts = 2;
server_read_max = 0;
server_read_max = 0;
test_begin("connection lost: one attempt");
- http_client_set.max_attempts = 1;
+ http_client_set.request_max_attempts = 1;
test_run_client_server(&http_client_set,
test_client_connection_lost,
test_server_connection_lost, 1, NULL);
test_end();
test_begin("connection lost: two attempts");
- http_client_set.max_attempts = 2;
+ http_client_set.request_max_attempts = 2;
test_run_client_server(&http_client_set,
test_client_connection_lost,
test_server_connection_lost, 1, NULL);
test_end();
test_begin("connection lost: three attempts");
- http_client_set.max_attempts = 3;
+ http_client_set.request_max_attempts = 3;
test_run_client_server(&http_client_set,
test_client_connection_lost,
test_server_connection_lost, 1, NULL);
test_end();
test_begin("connection lost: manual retry");
- http_client_set.max_attempts = 3;
+ http_client_set.request_max_attempts = 3;
http_client_set.auto_retry = FALSE;
test_run_client_server(&http_client_set,
test_client_connection_lost,
server_read_max = 0;
test_begin("connection lost after 100-continue");
- http_client_set.max_attempts = 1;
+ http_client_set.request_max_attempts = 1;
test_run_client_server(&http_client_set,
test_client_connection_lost_100,
test_server_connection_lost_100, 1, NULL);
server_read_max = 0;
test_begin("connection lost while running sub-ioloop");
- http_client_set.max_attempts = 1;
+ http_client_set.request_max_attempts = 1;
test_run_client_server(&http_client_set,
test_client_connection_lost_sub_ioloop,
test_server_connection_lost_sub_ioloop, 2, NULL);
test_begin("request timed out: one attempt");
http_client_set.request_timeout_msecs = 1000;
- http_client_set.max_attempts = 1;
+ http_client_set.request_max_attempts = 1;
test_run_client_server(&http_client_set,
test_client_request_timed_out1,
test_server_request_timed_out, 1, NULL);
test_begin("request timed out: two attempts");
http_client_set.request_timeout_msecs = 1000;
- http_client_set.max_attempts = 1;
+ http_client_set.request_max_attempts = 1;
test_run_client_server(&http_client_set,
test_client_request_timed_out1,
test_server_request_timed_out, 1, NULL);
test_begin("request absolutely timed out");
test_client_defaults(&http_client_set);
http_client_set.request_absolute_timeout_msecs = 2000;
- http_client_set.max_attempts = 3;
+ http_client_set.request_max_attempts = 3;
test_run_client_server(&http_client_set,
test_client_request_timed_out1,
test_server_request_timed_out, 1, NULL);
test_begin("request double timed out");
http_client_set.request_timeout_msecs = 500;
http_client_set.request_absolute_timeout_msecs = 2000;
- http_client_set.max_attempts = 3;
+ http_client_set.request_max_attempts = 3;
test_run_client_server(&http_client_set,
test_client_request_timed_out1,
test_server_request_timed_out, 1, NULL);
test_begin("request timed out: specific timeout");
test_client_defaults(&http_client_set);
http_client_set.request_timeout_msecs = 3000;
- http_client_set.max_attempts = 1;
+ http_client_set.request_max_attempts = 1;
http_client_set.max_parallel_connections = 1;
test_run_client_server(&http_client_set,
test_client_request_timed_out2,
test_begin("request timed out: specific timeout (parallel)");
test_client_defaults(&http_client_set);
http_client_set.request_timeout_msecs = 3000;
- http_client_set.max_attempts = 1;
+ http_client_set.request_max_attempts = 1;
http_client_set.max_parallel_connections = 4;
test_run_client_server(&http_client_set,
test_client_request_timed_out2,
struct http_client_settings http_client_set;
test_client_defaults(&http_client_set);
- http_client_set.max_attempts = 3;
+ http_client_set.request_max_attempts = 3;
test_begin("retry with delay");
test_run_client_server(&http_client_set,
http_client_set.dns_client_socket_path = "./dns-test";
http_client_set.dns_ttl_msecs = 10000;
http_client_set.max_idle_time_msecs = 1000;
- http_client_set.max_attempts = 1;
+ http_client_set.request_max_attempts = 1;
http_client_set.request_timeout_msecs = 1000;
test_begin("reconnect failure");
http_client_set.dns_ttl_msecs = 400;
http_client_set.max_parallel_connections = 1;
http_client_set.max_idle_time_msecs = 100;
- http_client_set.max_attempts = 2;
+ http_client_set.request_max_attempts = 2;
test_begin("idle hosts");
test_run_client_server(&http_client_set,
http_set->max_idle_time_msecs = 5*1000;
http_set->max_parallel_connections = 1;
http_set->max_pipelined_requests = 1;
- http_set->max_redirects = 0;
- http_set->max_attempts = 1;
+ http_set->request_max_redirects = 0;
+ http_set->request_max_attempts = 1;
}
static void test_client_progress_timeout(void *context ATTR_UNUSED)