X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fpacket_receive.c;h=73424a68988fe7b2016030d9c8de39bb8f33b7a9;hb=805fddcf6431e784f9f77114782a90c9d12f9cbe;hp=786c21a088fd52a8b1896ba385d664b1063dedbe;hpb=c8cad7cfe376df820ea8453fbcf7b37bcbb5134e;p=silc.git diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index 786c21a0..73424a68 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -356,6 +356,8 @@ static void silc_server_notify_process(SilcServer server, client->mode = 0; 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); break; @@ -1263,6 +1265,7 @@ static void silc_server_notify_process(SilcServer server, silc_server_del_from_watcher_list(server, client); /* Remove the client */ + silc_dlist_del(server->expired_clients, client); silc_idlist_del_data(client); silc_idlist_del_client(local ? server->local_list : server->global_list, client); @@ -1504,6 +1507,8 @@ static void silc_server_notify_process(SilcServer server, client->mode = 0; 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); break; } @@ -1664,6 +1669,7 @@ static void silc_server_notify_process(SilcServer server, 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); } @@ -3715,6 +3721,7 @@ void silc_server_resume_client(SilcServer server, detached_client->data.status &= ~SILC_IDLIST_STATUS_RESUME_RES; detached_client->mode &= ~SILC_UMODE_DETACHED; server->stat.my_detached--; + silc_dlist_del(server->expired_clients, detached_client); /* We are finished - reset resuming client */ detached_client->resuming_client = NULL; @@ -3732,6 +3739,7 @@ void silc_server_resume_client(SilcServer server, silc_server_remove_from_channels(server, NULL, client, FALSE, NULL, FALSE, FALSE); silc_server_del_from_watcher_list(server, client); + silc_dlist_del(server->expired_clients, client); if (!silc_idlist_del_client(server->local_list, client)) silc_idlist_del_client(server->global_list, client); client = detached_client;