X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fpacket_send.c;h=8062551faa4d9393e83a1745095ec68ee961391e;hb=386c883d8774999c6e74d7c6c37e52e4163a4cb1;hp=0860b68e1ea6c357acca50d1f72e7eac19cf2742;hpb=1eb298744baad994b2a6cda057c9125e27729e6f;p=silc.git diff --git a/apps/silcd/packet_send.c b/apps/silcd/packet_send.c index 0860b68e..8062551f 100644 --- a/apps/silcd/packet_send.c +++ b/apps/silcd/packet_send.c @@ -661,6 +661,7 @@ void silc_server_packet_send_to_channel(SilcServer server, force_send); } + silc_hash_table_list_reset(&htl); silc_free(routed); silc_free(packetdata.src_id); silc_free(packetdata.dst_id); @@ -874,8 +875,7 @@ void silc_server_packet_relay_to_channel(SilcServer server, /* If private key mode is not set then decrypt the packet and re-encrypt it */ if (!(channel->mode & SILC_CHANNEL_MODE_PRIVKEY)) { - unsigned char *tmp = silc_calloc(data_len, sizeof(*data)); - memcpy(tmp, data, data_len); + unsigned char *tmp = silc_memdup(data, data_len); /* Decrypt the channel message (we don't check the MAC) */ if (channel->channel_key && @@ -943,6 +943,7 @@ void silc_server_packet_relay_to_channel(SilcServer server, force_send); } + silc_hash_table_list_reset(&htl); silc_free(routed); silc_free(packetdata.src_id); silc_free(packetdata.dst_id); @@ -981,6 +982,7 @@ void silc_server_packet_send_local_channel(SilcServer server, force_send); } } + silc_hash_table_list_reset(&htl); } /* Routine used to send (relay, route) private messages to some destination. @@ -1033,13 +1035,14 @@ void silc_server_send_private_message(SilcServer server, void silc_server_send_motd(SilcServer server, SilcSocketConnection sock) { - char *motd; + char *motd, *motd_file = NULL; uint32 motd_len; - if (server->config && server->config->motd && - server->config->motd->motd_file) { + if (server->config) + motd_file = server->config->server_info->motd_file; - motd = silc_file_readfile(server->config->motd->motd_file, &motd_len); + if (motd_file) { + motd = silc_file_readfile(motd_file, &motd_len); if (!motd) return; @@ -1613,8 +1616,10 @@ void silc_server_send_notify_on_channels(SilcServer server, sent_clients[sent_clients_count++] = c; } } + silc_hash_table_list_reset(&htl2); } + silc_hash_table_list_reset(&htl); silc_free(routed); silc_free(sent_clients); silc_free(packetdata.src_id);