changeset 19841:0101120789fb

lib-http: client: Gave request, connect and dns timeouts defaults that make more sense.
author Stephan Bosch <stephan@rename-it.nl>
date Fri, 26 Feb 2016 00:15:17 +0200
parents 4487e5892f41
children 177bf7bb8673
files src/lib-http/http-client-host.c src/lib-http/http-client-private.h src/lib-http/http-client.c
diffstat 3 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-http/http-client-host.c	Thu Feb 25 22:46:11 2016 +0100
+++ b/src/lib-http/http-client-host.c	Fri Feb 26 00:15:17 2016 +0200
@@ -118,7 +118,14 @@
 		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 {
--- a/src/lib-http/http-client-private.h	Thu Feb 25 22:46:11 2016 +0100
+++ b/src/lib-http/http-client-private.h	Fri Feb 26 00:15:17 2016 +0200
@@ -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)
 
--- a/src/lib-http/http-client.c	Thu Feb 25 22:46:11 2016 +0100
+++ b/src/lib-http/http-client.c	Fri Feb 26 00:15:17 2016 +0200
@@ -142,7 +142,10 @@
 	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;