dovecot-1.1: login proxy: Don't give "tried to change state 2 ->...

dovecot at dovecot.org dovecot at dovecot.org
Mon Oct 12 21:05:22 EEST 2009


details:   http://hg.dovecot.org/dovecot-1.1/rev/427994458587
changeset: 8359:427994458587
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Oct 12 14:05:02 2009 -0400
description:
login proxy: Don't give "tried to change state 2 -> 2" errors with login_process_per_connection=yes.

diffstat:

1 file changed, 5 insertions(+), 2 deletions(-)
src/login-common/login-proxy.c |    7 +++++--

diffs (29 lines):

diff -r 7c19e829c414 -r 427994458587 src/login-common/login-proxy.c
--- a/src/login-common/login-proxy.c	Mon Oct 12 12:36:38 2009 -0400
+++ b/src/login-common/login-proxy.c	Mon Oct 12 14:05:02 2009 -0400
@@ -181,12 +181,14 @@ void login_proxy_free(struct login_proxy
 void login_proxy_free(struct login_proxy *proxy)
 {
 	const char *ipstr;
+	bool detached;
 
 	if (proxy->destroying)
 		return;
 	proxy->destroying = TRUE;
 
-	if (proxy->client_fd != -1) {
+	detached = proxy->client_fd != -1;
+	if (detached) {
 		/* detached proxy */
 		main_unref();
 		DLLIST_REMOVE(&login_proxies, proxy);
@@ -221,7 +223,8 @@ void login_proxy_free(struct login_proxy
 	i_free(proxy->user);
 	i_free(proxy);
 
-	main_listen_start();
+	if (detached)
+		main_listen_start();
 }
 
 bool login_proxy_is_ourself(struct client *client, const char *host,


More information about the dovecot-cvs mailing list