From: Pekka Riikonen Date: Sun, 17 Mar 2002 17:29:11 +0000 (+0000) Subject: Free everything allocated in silc_server_free. X-Git-Tag: silc.toolkit.0.8.1~17 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=de6fbcc6284debe0a7ec288bfeef3099a5f0109c Free everything allocated in silc_server_free. --- diff --git a/CHANGES b/CHANGES index aaa98c62..6a0c9dbe 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,10 @@ +Sun Mar 17 19:26:16 EET 2002 Pekka Riikonen + + * Added the deleting of server's own ID cache entry to the + silc_server_free function. Free also everything else that + has been allocated in silc_server_init. The affected file + is silcd/server.c. + Sun Mar 17 15:44:56 EET 2002 Pekka Riikonen * Added functions silc_parse_version_string, silc_version_to_num, diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 4dc47c92..6a5ec743 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -75,17 +75,7 @@ void silc_server_free(SilcServer server) if (server) { #ifdef SILC_SIM SilcSim sim; -#endif - - silc_free(server->local_list); - silc_free(server->global_list); - if (server->rng) - silc_rng_free(server->rng); - - if (server->pkcs) - silc_pkcs_free(server->pkcs); -#ifdef SILC_SIM while ((sim = silc_dlist_get(server->sim)) != SILC_LIST_END) { silc_dlist_del(server->sim, sim); silc_sim_free(sim); @@ -93,9 +83,23 @@ void silc_server_free(SilcServer server) silc_dlist_uninit(server->sim); #endif + if (server->rng) + silc_rng_free(server->rng); + if (server->pkcs) + silc_pkcs_free(server->pkcs); if (server->pending_commands) silc_dlist_uninit(server->pending_commands); + if (server->id_entry) + silc_idlist_del_server(server->local_list, server->id_entry); + + silc_idcache_free(server->local_list->clients); + silc_idcache_free(server->local_list->servers); + silc_idcache_free(server->local_list->channels); + silc_idcache_free(server->global_list->clients); + silc_idcache_free(server->global_list->servers); + silc_idcache_free(server->global_list->channels); + silc_free(server->sockets); silc_free(server); } } @@ -231,8 +235,7 @@ int silc_server_init(SilcServer server) For now, NULL is sent as router. This allocates new entry to the ID list. */ id_entry = - silc_idlist_add_server(server->local_list, - server->config->server_info->server_name, + silc_idlist_add_server(server->local_list, strdup(server->server_name), server->server_type, server->id, NULL, NULL); if (!id_entry) { SILC_LOG_ERROR(("Could not add ourselves to cache")); diff --git a/doc/draft-riikonen-silc-spec-05.nroff b/doc/draft-riikonen-silc-spec-05.nroff index 682e215a..71f67d6f 100644 --- a/doc/draft-riikonen-silc-spec-05.nroff +++ b/doc/draft-riikonen-silc-spec-05.nroff @@ -1417,7 +1417,7 @@ The version strings are of the following format: .in 6 protocol version = . -software version = [.[.]] +software version = [.[.]] .in 3 Protocol version MAY provide both major and minor version. Currently @@ -1431,10 +1431,12 @@ Software version MAY provide major, minor and build version. The software version MAY be freely set and accepted. -Thus, the version string could be, for example: +Thus, the version strings could be, for example: .in 6 SILC-1.0-1.2 +SILC-1.1-2.0.2 +SILC-1.0-1.0.VendorXYZ .in 3