Remove public key prior deleting client-data on killing a client.
authorPatrik Weiskircher <pat@silcnet.org>
Tue, 16 Dec 2003 20:40:47 +0000 (20:40 +0000)
committerPatrik Weiskircher <pat@silcnet.org>
Tue, 16 Dec 2003 20:40:47 +0000 (20:40 +0000)
apps/silcd/server_util.c

index c6233c7e93eaee68f0559c75f79e25ad1aabd595..4e3d0a07b889b7dd96f5a57c77f815d7fb91af6e 100644 (file)
@@ -1642,17 +1642,17 @@ void silc_server_kill_client(SilcServer server,
     SILC_OPER_STATS_UPDATE(remote_client, server, SILC_UMODE_SERVER_OPERATOR);
     SILC_OPER_STATS_UPDATE(remote_client, router, SILC_UMODE_ROUTER_OPERATOR);
 
+    if (remote_client->data.public_key)
+      silc_hash_table_del_by_context(server->pk_hash,
+                                     remote_client->data.public_key,
+                                     remote_client);
+
     if (SILC_IS_LOCAL(remote_client)) {
       server->stat.my_clients--;
       silc_schedule_task_del_by_context(server->schedule, remote_client);
       silc_idlist_del_data(remote_client);
     }
 
-    if (remote_client->data.public_key)
-      silc_hash_table_del_by_context(server->pk_hash,
-                                     remote_client->data.public_key,
-                                     remote_client);
-
     /* Remove remote client */
     silc_idlist_del_data(remote_client);
     if (!silc_idlist_del_client(server->global_list, remote_client)) {