changeset 11757:ea4701f11668 HEAD

director: Make sure all director connections are deinitialized at exit.
author Timo Sirainen <tss@iki.fi>
date Thu, 08 Jul 2010 13:58:35 +0100
parents 5113bada22b2
children 2060d3d08702
files src/director/director-connection.c src/director/director-connection.h src/director/director.c
diffstat 3 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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);
+	}
+}
--- 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
--- 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);