X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver.c;h=869d6450b12cd80874a585ee10320051b5a8b92b;hb=dec23b2f25ece17efc64295a144cde7b72b7014d;hp=5192004d89ed1f3c8d6a08d5e56b4a08dc0c13e4;hpb=0f093b08e579e8c8e04800ed74210bbd521a1475;p=silc.git diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 5192004d..869d6450 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -2240,12 +2240,15 @@ void silc_server_free_client_data(SilcServer server, to the network before removing the client entry. */ silc_server_packet_queue_purge(server, sock); + if (!client->id) + return; + /* Send SIGNOFF notify to routers. */ if (notify && !server->standalone && server->router) silc_server_send_notify_signoff(server, server->router->connection, server->server_type == SILC_SERVER ? FALSE : TRUE, client->id, signoff); - + /* Remove client from all channels */ if (notify) silc_server_remove_from_channels(server, NULL, client, @@ -2253,7 +2256,7 @@ void silc_server_free_client_data(SilcServer server, else silc_server_remove_from_channels(server, NULL, client, FALSE, NULL, FALSE); - + /* We will not delete the client entry right away. We will take it into history (for WHOWAS command) for 5 minutes */ i->server = server;