diff --git a/src/server/prime.c b/src/server/prime.c index af787d2..a460767 100644 --- a/src/server/prime.c +++ b/src/server/prime.c @@ -13,6 +13,15 @@ prime_init(void) idstubs = g_hash_table_new_full(g_str_hash, g_str_equal, free, free); } +void +prime_free_all(void) +{ + free(required_passwd); + if (idstubs) { + g_hash_table_destroy(idstubs); + } +} + void prime_required_passwd(char *password) { diff --git a/src/server/prime.h b/src/server/prime.h index 914884d..c1f803e 100644 --- a/src/server/prime.h +++ b/src/server/prime.h @@ -2,6 +2,7 @@ #define __H_PRIME void prime_init(void); +void prime_free_all(void); void prime_required_passwd(char *password); char* prime_get_passwd(void); diff --git a/src/server/server.c b/src/server/server.c index 03a4911..66800b2 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -226,6 +226,7 @@ _shutdown(void) shutdown(listen_socket, 2); close(listen_socket); + prime_free_all(); stanza_free_all(); log_close(); }