dovecot-2.2: login proxy: Don't assume host is down unless last ...

dovecot at dovecot.org dovecot at dovecot.org
Sun May 20 03:26:24 EEST 2012


details:   http://hg.dovecot.org/dovecot-2.2/rev/53b23557ec54
changeset: 14258:53b23557ec54
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Mar 02 17:58:37 2012 +0200
description:
login proxy: Don't assume host is down unless last success was >30s before last failure.
This avoids thinking that host is down, simply because one connection for it
failed.

diffstat:

 src/login-common/login-proxy.c |  2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diffs (19 lines):

diff -r e86198d749ec -r 53b23557ec54 src/login-common/login-proxy.c
--- a/src/login-common/login-proxy.c	Fri Mar 02 15:49:34 2012 +0200
+++ b/src/login-common/login-proxy.c	Fri Mar 02 17:58:37 2012 +0200
@@ -23,6 +23,7 @@
 #define LOGIN_PROXY_IPC_PATH "ipc-proxy"
 #define LOGIN_PROXY_IPC_NAME "proxy"
 #define KILLED_BY_ADMIN_REASON "Killed by admin"
+#define PROXY_IMMEDIATE_FAILURE_SECS 30
 
 struct login_proxy {
 	struct login_proxy *prev, *next;
@@ -240,6 +241,7 @@
 
 	rec = login_proxy_state_get(proxy_state, &proxy->ip, proxy->port);
 	if (timeval_cmp(&rec->last_failure, &rec->last_success) > 0 &&
+	    rec->last_failure.tv_sec - rec->last_success.tv_sec > PROXY_IMMEDIATE_FAILURE_SECS &&
 	    rec->num_waiting_connections != 0) {
 		/* the server is down. fail immediately */
 		i_error("proxy(%s): Host %s:%u is down",


More information about the dovecot-cvs mailing list