From 5257840e8d31a6cb7051703b4cb0931c82aba638 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Fri, 26 Feb 2016 00:15:17 +0200 Subject: [PATCH] lib-http: client: Gave request, connect and dns timeouts defaults that make more sense. --- src/lib-http/http-client-host.c | 9 ++++++++- src/lib-http/http-client-private.h | 5 ++--- src/lib-http/http-client.c | 5 ++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/lib-http/http-client-host.c b/src/lib-http/http-client-host.c index d839e3a36f..f0a0558e4f 100644 --- a/src/lib-http/http-client-host.c +++ b/src/lib-http/http-client-host.c @@ -118,7 +118,14 @@ static void http_client_host_lookup memset(&dns_set, 0, sizeof(dns_set)); dns_set.dns_client_socket_path = client->set.dns_client_socket_path; - dns_set.timeout_msecs = HTTP_CLIENT_DNS_LOOKUP_TIMEOUT_MSECS; + if (client->set.connect_timeout_msecs > 0) + dns_set.timeout_msecs = client->set.connect_timeout_msecs; + else if (client->set.request_timeout_msecs > 0) + dns_set.timeout_msecs = client->set.request_timeout_msecs; + else { + dns_set.timeout_msecs = + HTTP_CLIENT_DEFAULT_DNS_LOOKUP_TIMEOUT_MSECS; + } (void)dns_lookup(host->name, &dns_set, http_client_host_dns_callback, host, &host->dns_lookup); } else { diff --git a/src/lib-http/http-client-private.h b/src/lib-http/http-client-private.h index 965b81b155..acdb53ab26 100644 --- a/src/lib-http/http-client-private.h +++ b/src/lib-http/http-client-private.h @@ -9,10 +9,9 @@ #define HTTP_DEFAULT_PORT 80 #define HTTPS_DEFAULT_PORT 443 -#define HTTP_CLIENT_DNS_LOOKUP_TIMEOUT_MSECS (1000*30) -#define HTTP_CLIENT_CONNECT_TIMEOUT_MSECS (1000*30) #define HTTP_CLIENT_CONTINUE_TIMEOUT_MSECS (1000*2) -#define HTTP_CLIENT_DEFAULT_REQUEST_TIMEOUT_MSECS (1000*60*5) +#define HTTP_CLIENT_DEFAULT_REQUEST_TIMEOUT_MSECS (1000*60*1) +#define HTTP_CLIENT_DEFAULT_DNS_LOOKUP_TIMEOUT_MSECS (1000*10) #define HTTP_CLIENT_DEFAULT_BACKOFF_TIME_MSECS (100) #define HTTP_CLIENT_DEFAULT_BACKOFF_MAX_TIME_MSECS (1000*60) diff --git a/src/lib-http/http-client.c b/src/lib-http/http-client.c index acafc32cff..4ed3345263 100644 --- a/src/lib-http/http-client.c +++ b/src/lib-http/http-client.c @@ -142,7 +142,10 @@ struct http_client *http_client_init(const struct http_client_settings *set) client->set.response_hdr_limits = set->response_hdr_limits; client->set.request_absolute_timeout_msecs = set->request_absolute_timeout_msecs; - client->set.request_timeout_msecs = set->request_timeout_msecs; + client->set.request_timeout_msecs = + set->request_timeout_msecs == 0 ? + HTTP_CLIENT_DEFAULT_REQUEST_TIMEOUT_MSECS : + set->request_timeout_msecs; client->set.connect_timeout_msecs = set->connect_timeout_msecs; client->set.soft_connect_timeout_msecs = set->soft_connect_timeout_msecs; client->set.max_auto_retry_delay = set->max_auto_retry_delay;