From 530b5909a99e7575156496f1b8e4d1ff5b058484 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 12 Dec 2016 12:51:42 +0200 Subject: [PATCH] doveadm: When connecting to doveadm-server via TCP, use 30s timeout Should be enough, and better than the kernel's default, which might be a lot more. --- src/doveadm/doveadm-util.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/doveadm/doveadm-util.c b/src/doveadm/doveadm-util.c index bef804a472..3a895f5af4 100644 --- a/src/doveadm/doveadm-util.c +++ b/src/doveadm/doveadm-util.c @@ -15,6 +15,8 @@ #include #include +#define DOVEADM_TCP_CONNECT_TIMEOUT_SECS 30 + bool doveadm_verbose = FALSE, doveadm_debug = FALSE, doveadm_server = FALSE; static struct module *modules = NULL; @@ -104,6 +106,7 @@ doveadm_tcp_connect_port(const char *host, in_port_t port) unsigned int ips_count; int ret, fd; + alarm(DOVEADM_TCP_CONNECT_TIMEOUT_SECS); ret = net_gethostbyname(host, &ips, &ips_count); if (ret != 0) { i_fatal("Lookup of host %s failed: %s", @@ -114,6 +117,7 @@ doveadm_tcp_connect_port(const char *host, in_port_t port) i_fatal("connect(%s:%u) failed: %m", net_ip2addr(&ips[0]), port); } + alarm(0); return fd; }