From: Pekka Riikonen Date: Fri, 29 Mar 2002 08:46:35 +0000 (+0000) Subject: updates. X-Git-Tag: silc.client.0.8.5~5 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=f04171be035820399e0808e882fb981dafa7af7e updates. --- diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 32c2ac81..579d85ba 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -359,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(); @@ -370,18 +376,16 @@ bool silc_server_rehash(SilcServer server) return FALSE; } - /* 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); - /* Take new config context */ server->config = newconfig; silc_server_config_ref(&server->config_ref, server->config, server->config); /* Fix the server_name field */ - if (strcmp(server->server_name, newconfig->server_info->server_name)) { + if (!strcmp(server->server_name, newconfig->server_info->server_name)) { + /* We don't need any update */ + silc_free(newconfig->server_info->server_name); + newconfig->server_info->server_name = NULL; + } else { silc_free(server->server_name); server->server_name = newconfig->server_info->server_name; newconfig->server_info->server_name = NULL; diff --git a/apps/silcd/serverconfig.c b/apps/silcd/serverconfig.c index b4c264b3..0b31048a 100644 --- a/apps/silcd/serverconfig.c +++ b/apps/silcd/serverconfig.c @@ -884,6 +884,10 @@ SILC_CONFIG_CALLBACK(fetch_server) goto got_err; } } + else if (!strcmp(name, "versionid")) { + CONFIG_IS_DOUBLE(tmp->version); + tmp->version = strdup((char *) val); + } else if (!strcmp(name, "params")) { CONFIG_IS_DOUBLE(tmp->param); tmp->param = my_find_param(config, (char *) val, line); @@ -902,6 +906,7 @@ SILC_CONFIG_CALLBACK(fetch_server) got_err: silc_free(tmp->host); + silc_free(tmp->version); CONFIG_FREE_AUTH(tmp); silc_free(tmp); config->tmp = NULL; @@ -961,6 +966,10 @@ SILC_CONFIG_CALLBACK(fetch_router) goto got_err; } } + else if (!strcmp(name, "versionid")) { + CONFIG_IS_DOUBLE(tmp->version); + tmp->version = strdup((char *) val); + } else if (!strcmp(name, "params")) { CONFIG_IS_DOUBLE(tmp->param); tmp->param = my_find_param(config, (char *) val, line); @@ -995,6 +1004,7 @@ SILC_CONFIG_CALLBACK(fetch_router) got_err: silc_free(tmp->host); + silc_free(tmp->version); silc_free(tmp->backup_replace_ip); CONFIG_FREE_AUTH(tmp); silc_free(tmp); @@ -1134,6 +1144,7 @@ static const SilcConfigTable table_serverconn[] = { { "host", SILC_CONFIG_ARG_STRE, fetch_server, NULL }, { "passphrase", SILC_CONFIG_ARG_STR, fetch_server, NULL }, { "publickey", SILC_CONFIG_ARG_STR, fetch_server, NULL }, + { "versionid", SILC_CONFIG_ARG_STR, fetch_server, NULL }, { "params", SILC_CONFIG_ARG_STR, fetch_server, NULL }, { "backup", SILC_CONFIG_ARG_TOGGLE, fetch_server, NULL }, { 0, 0, 0, 0 } @@ -1144,6 +1155,7 @@ static const SilcConfigTable table_routerconn[] = { { "port", SILC_CONFIG_ARG_INT, fetch_router, NULL }, { "passphrase", SILC_CONFIG_ARG_STR, fetch_router, NULL }, { "publickey", SILC_CONFIG_ARG_STR, fetch_router, NULL }, + { "versionid", SILC_CONFIG_ARG_STR, fetch_router, NULL }, { "params", SILC_CONFIG_ARG_STR, fetch_router, NULL }, { "initiator", SILC_CONFIG_ARG_TOGGLE, fetch_router, NULL }, { "backuphost", SILC_CONFIG_ARG_STRE, fetch_router, NULL }, @@ -1298,11 +1310,7 @@ void silc_server_config_destroy(SilcServerConfig config) SILC_LOG_DEBUG(("Freeing config context")); - /* Destroy general config stuff */ silc_free(config->module_path); - silc_free(config->param.version_protocol); - silc_free(config->param.version_software); - silc_free(config->param.version_software_vendor); /* Destroy Logging channels */ if (config->logging_info) @@ -1353,15 +1361,8 @@ void silc_server_config_destroy(SilcServerConfig config) silc_free(di->name); silc_free(di); } - SILC_SERVER_CONFIG_LIST_DESTROY(SilcServerConfigConnParams, - config->conn_params) - silc_free(di->name); - silc_free(di->version_protocol); - silc_free(di->version_software); - silc_free(di->version_software_vendor); - silc_free(di); - } - SILC_SERVER_CONFIG_LIST_DESTROY(SilcServerConfigClient, config->clients) + SILC_SERVER_CONFIG_LIST_DESTROY(SilcServerConfigClient, + config->clients) silc_free(di->host); CONFIG_FREE_AUTH(di); silc_free(di); @@ -1381,12 +1382,14 @@ void silc_server_config_destroy(SilcServerConfig config) SILC_SERVER_CONFIG_LIST_DESTROY(SilcServerConfigServer, config->servers) silc_free(di->host); + silc_free(di->version); CONFIG_FREE_AUTH(di); silc_free(di); } SILC_SERVER_CONFIG_LIST_DESTROY(SilcServerConfigRouter, config->routers) silc_free(di->host); + silc_free(di->version); silc_free(di->backup_replace_ip); CONFIG_FREE_AUTH(di); silc_free(di);