X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver.c;h=0f3e2da518a05afdb0a171c576690dddf8a98066;hb=8221f7af775a38780ffacfd876b68a2edda8eb97;hp=10530e00d7d4cacffbb5f65e07290a0eb3a5b6e9;hpb=e2c551b9693b6d42e5997b9df416a17fb94c1ccb;p=silc.git diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 10530e00..0f3e2da5 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -77,8 +77,6 @@ int silc_server_alloc(SilcServer *new_server) void silc_server_free(SilcServer server) { - int i; - if (!server) return; @@ -94,13 +92,6 @@ void silc_server_free(SilcServer server) } #endif - for (i = 0; i < server->config->param.connections_max; i++) { - if (!server->sockets[i]) - continue; - silc_socket_free(server->sockets[i]); - } - silc_free(server->sockets); - silc_server_config_unref(&server->config_ref); if (server->rng) silc_rng_free(server->rng); @@ -584,6 +575,16 @@ void silc_server_stop(SilcServer server) SILC_LOG_DEBUG(("Stopping server")); if (server->schedule) { + int i; + + for (i = 0; i < server->config->param.connections_max; i++) { + if (!server->sockets[i]) + continue; + silc_socket_free(server->sockets[i]); + } + silc_free(server->sockets); + server->sockets = NULL; + silc_schedule_stop(server->schedule); silc_schedule_uninit(server->schedule); server->schedule = NULL;