From 8fc07660b7f1bcd3f11cd450b3f700412f0b905e Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sun, 2 Dec 2001 22:38:03 +0000 Subject: [PATCH] updates. --- CHANGES | 4 ++++ TODO | 13 +++++++++++++ apps/silcd/command_reply.c | 29 ++++++++++++++++++----------- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/CHANGES b/CHANGES index 4f5bba2b..08d6108c 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,10 @@ Sun Dec 2 23:29:07 EET 2001 Pekka Riikonen from router. Fixes a bug in WHOIS and IDENTIFY. Affected file silcd/command.c. + * Search channel by name (if possible) rather than by ID + in IDENTIFY command's command reply. Affected file is + silcd/command_reply.c. + Sun Dec 2 13:48:46 EET 2001 Pekka Riikonen * Distribute to the channel passphrase in CMODE_CHANGE notify. diff --git a/TODO b/TODO index 81f10492..cf5768f0 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,9 @@ TODO/bugs in Irssi SILC client ============================== + o Setting /away prints server/router operator modes as well. + Print modes that was just set only. + o Add local command to switch the channel's private key when channel has several private keys. Currently sending channel messages with many keys is not possible because changing the key is not possible by the @@ -36,6 +39,16 @@ TODO/bugs In SILC Client Library TODO/bugs In SILC Server ======================== + o The LIST command reply should empty the global list because + it is possible there stay channels that does not exist anymore. + Empty it and put channels that server does not know about to + global list. + + o Make the silc_server_command_pending_error_check function to + take all arguments it received and put them to the reply it is + sending. Otherwise for example WHOIS on normal server for bogus + nickname does not print anything in the client. + o Backup router related issues o Channel user mode changes are notified unnecessarely when diff --git a/apps/silcd/command_reply.c b/apps/silcd/command_reply.c index 2bd74472..6bb87163 100644 --- a/apps/silcd/command_reply.c +++ b/apps/silcd/command_reply.c @@ -530,11 +530,19 @@ silc_server_command_reply_identify_save(SilcServerCommandReplyContext cmd) SILC_LOG_DEBUG(("Received channel information")); - channel = silc_idlist_find_channel_by_id(server->local_list, - channel_id, NULL); - if (!channel) - channel = silc_idlist_find_channel_by_id(server->global_list, channel_id, - NULL); + if (name) { + channel = silc_idlist_find_channel_by_name(server->local_list, + name, NULL); + if (!channel) + channel = silc_idlist_find_channel_by_name(server->global_list, + name, NULL); + } else { + channel = silc_idlist_find_channel_by_id(server->local_list, + channel_id, NULL); + if (!channel) + channel = silc_idlist_find_channel_by_id(server->global_list, + channel_id, NULL); + } if (!channel) { /* If router did not find such Channel ID in its lists then this must be bogus channel or some router in the net is buggy. */ @@ -1108,11 +1116,11 @@ SILC_SERVER_CMD_REPLY_FUNC(list) SILC_GET32_MSB(usercount, tmp); /* Add the channel entry if we do not have it already */ - channel = silc_idlist_find_channel_by_id(server->local_list, - channel_id, NULL); + channel = silc_idlist_find_channel_by_name(server->local_list, + name, NULL); if (!channel) - channel = silc_idlist_find_channel_by_id(server->global_list, - channel_id, NULL); + channel = silc_idlist_find_channel_by_name(server->global_list, + name, NULL); if (!channel) { /* If router did not find such Channel ID in its lists then this must be bogus channel or some router in the net is buggy. */ @@ -1121,8 +1129,7 @@ SILC_SERVER_CMD_REPLY_FUNC(list) channel = silc_idlist_add_channel(server->global_list, strdup(name), SILC_CHANNEL_MODE_NONE, channel_id, - server->router, - NULL, NULL); + server->router, NULL, NULL); if (!channel) goto out; channel_id = NULL; -- 2.43.0