X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=apps%2Fsilcd%2Fserver.c;h=aff2df5c1aeb8e710d0f852ea536cf2542d677b4;hp=73f363613f1a24ae59237900b29a411248142b12;hb=a939f27e19b8084ef2acd25156b19d26d1440ace;hpb=ff6a990d9e7361a5d1eb9909483bcea7decef4d4 diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 73f36361..aff2df5c 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -1263,13 +1263,10 @@ SILC_TASK_CALLBACK(silc_server_purge_expired_clients) silc_dlist_start(server->expired_clients); while ((client = silc_dlist_get(server->expired_clients))) { - if (client->data.status & SILC_IDLIST_STATUS_REGISTERED) - continue; - /* For unregistered clients the created timestamp is actually unregistered timestamp. Make sure client remains in history at least 500 seconds. */ - if (curtime - client->data.created < 500) + if (client->data.created && curtime - client->data.created < 500) continue; id_list = (client->data.status & SILC_IDLIST_STATUS_LOCAL ? @@ -3036,6 +3033,7 @@ void silc_server_free_client_data(SilcServer server, client->router = NULL; client->connection = NULL; client->data.created = silc_time(); + silc_dlist_del(server->expired_clients, client); silc_dlist_add(server->expired_clients, client); } else { /* Delete directly since we're shutting down server */