Mercurial > dovecot > core-2.2
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);