updates.
[silc.git] / apps / silcd / server_util.c
index c41c8bcfe54f16adf2d894d5f279d2eec677ced0..ad856b4af076e828ed8b1c7c14a9a561247e261e 100644 (file)
@@ -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;
@@ -726,10 +734,7 @@ bool silc_server_client_on_channel(SilcClientEntry client,
   if (!client || !channel)
     return FALSE;
 
-  if (silc_hash_table_find(client->channels, channel, NULL, NULL))
-    return TRUE;
-
-  return FALSE;
+  return silc_hash_table_find(client->channels, channel, NULL, NULL);
 }
 
 /* Checks string for bad characters and returns TRUE if they are found. */