+Mon May 9 12:00:08 EEST 2005 Pekka Riikonen <priikone@silcnet.org>
+
+ * Fixed channel public key list saving on JOIN command reply
+ on backup router. Affected file apps/silcd/command_reply.c.
+
Mon May 2 10:42:49 EEST 2005 Pekka Riikonen <priikone@silcnet.org>
* Added default limit how many channels client can join,
/* Get channel public key list */
tmp = silc_argument_get_arg_type(cmd->args, 16, &len);
- if (tmp && server->server_type == SILC_SERVER)
+ if (tmp && server->server_type != SILC_ROUTER)
silc_server_set_channel_pk_list(server, NULL, entry, tmp, len);
/* The the user limit */
/* If we received same mode from our primary check whether founder
mode and key in the notify is set. We update the founder key
here since we may have wrong one */
- if (server->server_type == SILC_SERVER &&
+ if (server->server_type != SILC_ROUTER &&
sock == SILC_PRIMARY_ROUTE(server) &&
mode & SILC_CHANNEL_MODE_FOUNDER_AUTH) {
SILC_LOG_DEBUG(("Founder public key received from router"));
/* Process channel public key(s). */
tmp = silc_argument_get_arg_type(args, 7, &tmp_len);
if (tmp && mode & SILC_CHANNEL_MODE_CHANNEL_AUTH) {
- SilcStatus ret =
+ SilcStatus ret;
+ SILC_LOG_DEBUG(("Channel public key list received from router"));
+
+ ret =
silc_server_set_channel_pk_list(server, sock, channel, tmp, tmp_len);
/* If list was set already we will enforce the same list to server. */
tmp = silc_argument_get_first_arg(args, &type, &len);
while (tmp) {
if (type == 1) {
- /* Check validity of the string. Actually we should parse the
+ /* Check validity of the string. Actually we should parse the
whole string and verify all components individually. */
if (!silc_utf8_valid(tmp, len) || !len) {
tmp = silc_argument_get_next_arg(args, &type, &len);
tmp = silc_argument_get_first_arg(args, &type, &len);
while (tmp) {
if (type == 1) {
- /* Check validity of the string. Actually we should parse the
+ /* Check validity of the string. Actually we should parse the
whole string and verify all components individually. */
if (!silc_utf8_valid(tmp, len)) {
tmp = silc_argument_get_next_arg(args, &type, &len);
if (type == 0x00) {
/* Add new public key to channel public key list */
- SILC_LOG_DEBUG(("Add new channel public key to channel %s",
- channel->channel_name));
+ SILC_LOG_DEBUG(("Add new channel public key %s to channel %s",
+ chpk->identifier, channel->channel_name));
/* Check for resource limit */
if (silc_hash_table_count(channel->channel_pubkeys) > 64) {