Remove client from expired client list before deleting it
[silc.git] / apps / silcd / command_reply.c
index d7202f2714344505b3ff27a4bdcf2ea461c9c959..0b1645ec4fba9332a1c8e0dea17eba370916680d 100644 (file)
@@ -152,6 +152,7 @@ silc_server_command_process_error(SilcServerCommandReplyContext cmd,
 
       silc_server_remove_from_channels(server, NULL, client, TRUE,
                                       NULL, TRUE, FALSE);
+      silc_dlist_del(server->expired_clients, client);
       silc_idlist_del_data(client);
       silc_idlist_del_client(server->global_list, client);
     }
@@ -547,6 +548,7 @@ silc_server_command_reply_whowas_save(SilcServerCommandReplyContext cmd)
     client = silc_idlist_find_client_by_id(server->global_list, client->id,
                                           FALSE, &cache);
     if (client && !silc_hash_table_count(client->channels)) {
+      client->data.created = silc_time();
       silc_dlist_del(server->expired_clients, client);
       silc_dlist_add(server->expired_clients, client);
     }