updates.
authorPekka Riikonen <priikone@silcnet.org>
Thu, 25 Oct 2001 16:05:10 +0000 (16:05 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 25 Oct 2001 16:05:10 +0000 (16:05 +0000)
CHANGES
apps/silcd/command_reply.c
apps/silcd/server.c
apps/silcd/server_util.c

diff --git a/CHANGES b/CHANGES
index f98ab832a5bf57942546aa7c61ef3b39805f3c6e..f7dbcb28fcc5ad10867c42f990c921a68be276fb 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+Thu Oct 25 19:04:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Assure my_channels statistics cannot go negative in server.
+         Affected files silcd/server.c, silcd/server_util.c.
+
 Wed Oct 24 19:53:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 
        * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
index 88a91d64854449b079c7b3e7b15695739c95cd60..c718c3baebde33a3a8f4d7dc18d2b03208118efb 100644 (file)
@@ -813,6 +813,7 @@ SILC_SERVER_CMD_REPLY_FUNC(join)
       silc_free(id);
       goto out;
     }
+    server->stat.my_channels++;
   } else {
     /* The entry exists. */
     if (cache->id)
index 6543828594e7ae6839715c16868684172c95be7d..8f2c8d830cd75c049666776bd134a74e592c2b85 100644 (file)
@@ -2481,8 +2481,8 @@ void silc_server_remove_from_channels(SilcServer server,
        silc_schedule_task_del_by_context(server->schedule, channel->rekey);
       if (silc_idlist_del_channel(server->local_list, channel))
        server->stat.my_channels--;
-      else if (silc_idlist_del_channel(server->global_list, channel))
-       server->stat.my_channels--;
+      else 
+        silc_idlist_del_channel(server->global_list, channel);
       continue;
     }
 
@@ -2533,8 +2533,8 @@ void silc_server_remove_from_channels(SilcServer server,
       /* Remove the channel entry */
       if (silc_idlist_del_channel(server->local_list, channel))
        server->stat.my_channels--;
-      else if (silc_idlist_del_channel(server->global_list, channel))
-       server->stat.my_channels--;
+      else 
+        silc_idlist_del_channel(server->global_list, channel);
       continue;
     }
 
@@ -2601,8 +2601,8 @@ int silc_server_remove_from_one_channel(SilcServer server,
       silc_schedule_task_del_by_context(server->schedule, channel->rekey);
     if (silc_idlist_del_channel(server->local_list, channel))
       server->stat.my_channels--;
-    else if (silc_idlist_del_channel(server->global_list, channel))
-      server->stat.my_channels--;
+    else 
+      silc_idlist_del_channel(server->global_list, channel);
     silc_buffer_free(clidp);
     return FALSE;
   }
@@ -2653,8 +2653,8 @@ int silc_server_remove_from_one_channel(SilcServer server,
     /* Remove the channel entry */
     if (silc_idlist_del_channel(server->local_list, channel))
       server->stat.my_channels--;
-    else if (silc_idlist_del_channel(server->global_list, channel))
-      server->stat.my_channels--;
+    else 
+      silc_idlist_del_channel(server->global_list, channel);
     return FALSE;
   }
 
index 61b7f926fb54187b398e2604065607d70d44a000..40aafc1cfc6ee72aafa6d5ea4c3b6f8a9113a212 100644 (file)
@@ -64,8 +64,8 @@ static void silc_server_remove_clients_channels(SilcServer server,
 
       if (silc_idlist_del_channel(server->local_list, channel))
        server->stat.my_channels--;
-      else if (silc_idlist_del_channel(server->global_list, channel))
-       server->stat.my_channels--;
+      else 
+        silc_idlist_del_channel(server->global_list, channel);
       continue;
     }
 
@@ -111,8 +111,8 @@ static void silc_server_remove_clients_channels(SilcServer server,
       /* Remove the channel entry */
       if (silc_idlist_del_channel(server->local_list, channel))
        server->stat.my_channels--;
-      else if (silc_idlist_del_channel(server->global_list, channel))
-       server->stat.my_channels--;
+      else 
+        silc_idlist_del_channel(server->global_list, channel);
       continue;
     }