]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: client: Gave request, connect and dns timeouts defaults that make more...
authorStephan Bosch <stephan@rename-it.nl>
Thu, 25 Feb 2016 22:15:17 +0000 (00:15 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 25 Feb 2016 22:15:17 +0000 (00:15 +0200)
src/lib-http/http-client-host.c
src/lib-http/http-client-private.h
src/lib-http/http-client.c

index d839e3a36f750e2d0c6220b7ffd48a2bd3f4a6f8..f0a0558e4fafe15734ec8286a86f745abaec5c2e 100644 (file)
@@ -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 {
index 965b81b155ca9759b8df4a370f265b24e857b813..acdb53ab26edafd86dc15fb4b56d268cdae6cab1 100644 (file)
@@ -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)
 
index acafc32cffa2eae50ade2a56cb43b9209dc865cc..4ed334526343df0783f07b68ee392a5269fe161c 100644 (file)
@@ -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;