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 <priikone@silcnet.org>
* Distribute to the channel passphrase in CMODE_CHANGE notify.
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
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
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. */
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. */
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;