From 2a4bc2680d6927b8d809e55af662feacb8a42707 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Thu, 25 Oct 2001 16:05:10 +0000 Subject: [PATCH] updates. --- CHANGES | 5 +++++ apps/silcd/command_reply.c | 1 + apps/silcd/server.c | 16 ++++++++-------- apps/silcd/server_util.c | 8 ++++---- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/CHANGES b/CHANGES index f98ab832..f7dbcb28 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +Thu Oct 25 19:04:49 EDT 2001 Pekka Riikonen + + * 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 * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf. diff --git a/apps/silcd/command_reply.c b/apps/silcd/command_reply.c index 88a91d64..c718c3ba 100644 --- a/apps/silcd/command_reply.c +++ b/apps/silcd/command_reply.c @@ -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) diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 65438285..8f2c8d83 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -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; } diff --git a/apps/silcd/server_util.c b/apps/silcd/server_util.c index 61b7f926..40aafc1c 100644 --- a/apps/silcd/server_util.c +++ b/apps/silcd/server_util.c @@ -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; } -- 2.24.0