From 0e989f70da6561b7218ab3bf508a90dc84febcd1 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Fri, 29 Mar 2002 08:45:36 +0000 Subject: [PATCH] updates. --- apps/silcd/server.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 6db5a87c..579d85ba 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -148,6 +148,10 @@ bool silc_server_init(SilcServer server) SILC_LOG_DEBUG(("Initializing server")); + /* Take config object for us */ + silc_server_config_ref(&server->config_ref, server->config, + server->config); + /* Steal public and private key from the config object */ server->public_key = server->config->server_info->public_key; server->private_key = server->config->server_info->private_key; @@ -355,6 +359,12 @@ bool silc_server_rehash(SilcServer server) SILC_LOG_INFO(("Rehashing server")); + /* Our old config is gone now. We'll unreference our reference made in + silc_server_init and then destroy it since we are destroying it + underneath the application (layer which called silc_server_init). */ + silc_server_config_unref(&server->config_ref); + silc_server_config_destroy(server->config); + /* Reset the logging system */ silc_log_quick = TRUE; silc_log_flush_all(); @@ -366,10 +376,7 @@ bool silc_server_rehash(SilcServer server) return FALSE; } - /* Config file parsing went fine, so our old config is gone now. We - unreference the basic pointer and it should be destroyed as soon - as all other references are released. */ - silc_server_config_unref(&server->config_ref); + /* Take new config context */ server->config = newconfig; silc_server_config_ref(&server->config_ref, server->config, server->config); -- 2.24.0