From: Pekka Riikonen Date: Sat, 5 Oct 2002 18:46:19 +0000 (+0000) Subject: Bug tracking. X-Git-Tag: silc.client.0.9.6~66 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=ded594b218b41593192dc37ec059a1a8a5d70eff Bug tracking. --- diff --git a/apps/silcd/packet_send.c b/apps/silcd/packet_send.c index e69cc2f2..c8518f19 100644 --- a/apps/silcd/packet_send.c +++ b/apps/silcd/packet_send.c @@ -980,8 +980,8 @@ void silc_server_packet_send_local_channel(SilcServer server, /* Send the message to clients on the channel's client list. */ silc_hash_table_list(channel->user_list, &htl); while (silc_hash_table_get(&htl, NULL, (void **)&chl)) { - if (chl->client && !chl->client->router) { - sock = (SilcSocketConnection)chl->client->connection; + if (chl->client && SILC_IS_LOCAL(chl->client)) { + sock = chl->client->connection; /* Send the packet to the client */ silc_server_packet_send_dest(server, sock, type, flags, chl->client->id, diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 81ff0769..bafbcdf5 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -3303,7 +3303,7 @@ void silc_server_remove_from_channels(SilcServer server, } silc_hash_table_del(client->channels, channel); - silc_hash_table_del(channel->user_list, chl->client); + silc_hash_table_del(channel->user_list, client); channel->user_count--; /* If there is no global users on the channel anymore mark the channel @@ -3312,6 +3312,7 @@ void silc_server_remove_from_channels(SilcServer server, chl->client->router && !silc_server_channel_has_global(channel)) channel->global_users = FALSE; + memset(chl, 'A', sizeof(*chl)); silc_free(chl); /* Update statistics */ @@ -3404,8 +3405,8 @@ bool silc_server_remove_from_one_channel(SilcServer server, return FALSE; } - silc_hash_table_del(client->channels, chl->channel); - silc_hash_table_del(channel->user_list, chl->client); + silc_hash_table_del(client->channels, channel); + silc_hash_table_del(channel->user_list, client); channel->user_count--; /* If there is no global users on the channel anymore mark the channel @@ -3414,6 +3415,7 @@ bool silc_server_remove_from_one_channel(SilcServer server, chl->client->router && !silc_server_channel_has_global(channel)) channel->global_users = FALSE; + memset(chl, 'O', sizeof(*chl)); silc_free(chl); /* Update statistics */