X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver_util.c;h=88e6afa610357b01bccd8b9687d849d55a1d8a51;hb=a968abb33dc0ecdb572601b39f223d7e79f41860;hp=c41c8bcfe54f16adf2d894d5f279d2eec677ced0;hpb=e42b7b312ba7486d31fb139c5ba10ec75e65a652;p=silc.git diff --git a/apps/silcd/server_util.c b/apps/silcd/server_util.c index c41c8bcf..88e6afa6 100644 --- a/apps/silcd/server_util.c +++ b/apps/silcd/server_util.c @@ -210,6 +210,13 @@ bool silc_server_remove_clients_by_server(SilcServer server, silc_buffer_free(idp); } + /* Update statistics */ + server->stat.clients--; + if (server->server_type == SILC_ROUTER) + server->stat.cell_clients--; + SILC_OPER_STATS_UPDATE(client, server, SILC_UMODE_SERVER_OPERATOR); + SILC_OPER_STATS_UPDATE(client, router, SILC_UMODE_ROUTER_OPERATOR); + /* Remove the client entry */ silc_server_remove_clients_channels(server, NULL, client, channels); if (!server_signoff) { @@ -218,9 +225,6 @@ bool silc_server_remove_clients_by_server(SilcServer server, } else { silc_idlist_del_client(server->local_list, client); } - server->stat.clients--; - if (server->server_type == SILC_ROUTER) - server->stat.cell_clients--; if (!silc_idcache_list_next(list, &id_cache)) break; @@ -270,6 +274,13 @@ bool silc_server_remove_clients_by_server(SilcServer server, silc_buffer_free(idp); } + /* Update statistics */ + server->stat.clients--; + if (server->server_type == SILC_ROUTER) + server->stat.cell_clients--; + SILC_OPER_STATS_UPDATE(client, server, SILC_UMODE_SERVER_OPERATOR); + SILC_OPER_STATS_UPDATE(client, router, SILC_UMODE_ROUTER_OPERATOR); + /* Remove the client entry */ silc_server_remove_clients_channels(server, NULL, client, channels); if (!server_signoff) { @@ -278,9 +289,6 @@ bool silc_server_remove_clients_by_server(SilcServer server, } else { silc_idlist_del_client(server->global_list, client); } - server->stat.clients--; - if (server->server_type == SILC_ROUTER) - server->stat.cell_clients--; if (!silc_idcache_list_next(list, &id_cache)) break;