X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fpacket_receive.c;h=5a49ca314e2cc1bd7fdd2eb7091a417955f26211;hb=ce742c4140e578ab25c84eef9c189892c3681214;hp=ab174e4f5d000140e18aac2b179e83316b0c2675;hpb=b560ba10ed343202962d5575a988e1faec91e0db;p=silc.git diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index ab174e4f..5a49ca31 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -3734,8 +3734,12 @@ void silc_server_resume_client(SilcServer server, silc_server_check_watcher_list(server, detached_client, NULL, SILC_NOTIFY_TYPE_UMODE_CHANGE); - /* Delete this current client entry since we're resuming to old one. */ - server->stat.my_clients--; + /* Delete this current client entry since we're resuming to old one. + We decrement clients/cell_clients as we are getting rid of the + current client and replacing it with the detached one. We keep the + server user count as-is (incremented by the current client entry) as + we decremented the count already during detach, thus we'd be undoing + that operation. */ SILC_VERIFY(server->stat.clients > 0); server->stat.clients--; if (server->stat.cell_clients)