silcd: show MAC in welcome notifys
[silc.git] / apps / silcd / server_util.c
index 9bcc47b20377b5c8c5acd8a0152dce1ca08d1656..233299570b5b537545f4f5e1d8bf791f158a7b4f 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 1997 - 2008 Pekka Riikonen
+  Copyright (C) 1997 - 2009 Pekka Riikonen
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -42,8 +42,8 @@ silc_server_remove_clients_channels(SilcServer server,
   if (!client)
     return;
 
-  SILC_LOG_DEBUG(("Remove client %s from all channels",
-                client->nickname ? client->nickname :
+  SILC_LOG_DEBUG(("Remove client %p %s from all channels",
+                 client, client->nickname ? client->nickname :
                  (unsigned char *)""));
 
   if (silc_hash_table_find(clients, client, NULL, NULL))
@@ -205,6 +205,8 @@ SilcBool silc_server_remove_clients_by_server(SilcServer server,
       }
 
       /* Update statistics */
+      SILC_LOG_DEBUG(("stat.clients %d->%d", server->stat.clients,
+                     server->stat.clients - 1));
       SILC_VERIFY(server->stat.clients > 0);
       server->stat.clients--;
       if (server->stat.cell_clients)
@@ -269,6 +271,8 @@ SilcBool silc_server_remove_clients_by_server(SilcServer server,
       }
 
       /* Update statistics */
+      SILC_LOG_DEBUG(("stat.clients %d->%d", server->stat.clients,
+                     server->stat.clients - 1));
       SILC_VERIFY(server->stat.clients > 0);
       server->stat.clients--;
       if (server->stat.cell_clients)
@@ -1089,6 +1093,7 @@ static void find_callback(SilcSKR skr, SilcSKRFind find,
   SilcSKRKey key;
 
   if (keys) {
+    SILC_LOG_DEBUG(("Found %d keys", silc_dlist_count(keys)));
     silc_dlist_start(keys);
     key = silc_dlist_get(keys);
     *public_key = key->key;
@@ -1421,6 +1426,7 @@ void silc_server_send_connect_notifys(SilcServer server,
                                      SilcClientEntry client)
 {
   SilcCipher key;
+  SilcHmac hmac;
 
   SILC_LOG_DEBUG(("Send welcome notifys"));
 
@@ -1481,12 +1487,12 @@ void silc_server_send_connect_notifys(SilcServer server,
                             server->stat.my_router_ops +
                             server->stat.my_server_ops));
 
-  silc_packet_get_keys(sock, &key, NULL, NULL, NULL);
+  silc_packet_get_keys(sock, &key, NULL, &hmac, NULL);
   SILC_SERVER_SEND_NOTIFY(server, sock, SILC_NOTIFY_TYPE_NONE,
-                         ("Your connection is secured with %s cipher, "
-                          "key length %d bits",
+                         ("Your connection is secured with %s cipher "
+                          "and %s MAC",
                           silc_cipher_get_name(key),
-                          silc_cipher_get_key_len(key)));
+                          silc_hmac_get_name(hmac)));
   SILC_SERVER_SEND_NOTIFY(server, sock, SILC_NOTIFY_TYPE_NONE,
                          ("Your current nickname is %s",
                           client->nickname));
@@ -1562,6 +1568,8 @@ void silc_server_kill_client(SilcServer server,
     }
   } else {
     /* Update statistics */
+    SILC_LOG_DEBUG(("stat.clients %d->%d", server->stat.clients,
+                   server->stat.clients - 1));
     SILC_VERIFY(server->stat.clients > 0);
     server->stat.clients--;
     if (server->stat.cell_clients)
@@ -1577,7 +1585,8 @@ void silc_server_kill_client(SilcServer server,
     }
 
     if (SILC_IS_LOCAL(remote_client)) {
-      server->stat.my_clients--;
+      if (!remote_client->local_detached)
+        server->stat.my_clients--;
       silc_schedule_task_del_by_context(server->schedule, remote_client);
     }