dovecot-2.0: director: Make sure all director connections are de...

dovecot at dovecot.org dovecot at dovecot.org
Thu Jul 8 15:58:39 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/ea4701f11668
changeset: 11757:ea4701f11668
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jul 08 13:58:35 2010 +0100
description:
director: Make sure all director connections are deinitialized at exit.

diffstat:

 src/director/director-connection.c |  11 +++++++++++
 src/director/director-connection.h |   2 ++
 src/director/director.c            |   6 +-----
 3 files changed, 14 insertions(+), 5 deletions(-)

diffs (44 lines):

diff -r 5113bada22b2 -r ea4701f11668 src/director/director-connection.c
--- a/src/director/director-connection.c	Thu Jul 08 13:48:10 2010 +0100
+++ b/src/director/director-connection.c	Thu Jul 08 13:58:35 2010 +0100
@@ -1135,3 +1135,14 @@
 				    director_connection_ping, conn);
 	conn->sync_ping = TRUE;
 }
+
+void director_connections_deinit(struct director *dir)
+{
+	struct director_connection *conn;
+
+	while (dir->connections != NULL) {
+		conn = dir->connections;
+		dir->connections = conn->next;
+		director_connection_deinit(&conn);
+	}
+}
diff -r 5113bada22b2 -r ea4701f11668 src/director/director-connection.h
--- a/src/director/director-connection.h	Thu Jul 08 13:48:10 2010 +0100
+++ b/src/director/director-connection.h	Thu Jul 08 13:58:35 2010 +0100
@@ -29,4 +29,6 @@
 void director_connection_cork(struct director_connection *conn);
 void director_connection_uncork(struct director_connection *conn);
 
+void director_connections_deinit(struct director *dir);
+
 #endif
diff -r 5113bada22b2 -r ea4701f11668 src/director/director.c
--- a/src/director/director.c	Thu Jul 08 13:48:10 2010 +0100
+++ b/src/director/director.c	Thu Jul 08 13:58:35 2010 +0100
@@ -381,11 +381,7 @@
 
 	*_dir = NULL;
 
-	if (dir->left != NULL)
-		director_connection_deinit(&dir->left);
-	if (dir->right != NULL)
-		director_connection_deinit(&dir->right);
-
+	director_connections_deinit(dir);
 	user_directory_deinit(&dir->users);
 	mail_hosts_deinit(&dir->mail_hosts);
 	mail_hosts_deinit(&dir->orig_config_hosts);


More information about the dovecot-cvs mailing list