if (ptr->backup_router) {
server->server_type = SILC_BACKUP_ROUTER;
server->backup_router = TRUE;
+ server->id_entry->server_type = SILC_BACKUP_ROUTER;
break;
}
ptr = ptr->next;
by the primary router and went down with the router. */
silc_server_update_clients_by_server(server, user_data, backup_router,
TRUE, TRUE);
+ silc_server_update_servers_by_server(server, user_data, backup_router);
}
/* Free the server entry */
if (channel->rekey)
silc_schedule_task_del_by_context(server->schedule, channel->rekey);
if (silc_idlist_del_channel(server->local_list, channel))
- server->stat.my_channels--;
- silc_idlist_del_channel(server->global_list, channel);
+ server->stat.my_channels--;
+ else if (silc_idlist_del_channel(server->global_list, channel))
+ server->stat.my_channels--;
continue;
}
}
/* Remove the channel entry */
- if (!silc_idlist_del_channel(server->local_list, channel))
- silc_idlist_del_channel(server->global_list, channel);
- server->stat.my_channels--;
+ if (silc_idlist_del_channel(server->local_list, channel))
+ server->stat.my_channels--;
+ else if (silc_idlist_del_channel(server->global_list, channel))
+ server->stat.my_channels--;
continue;
}
silc_hash_table_count(channel->user_list) < 2) {
if (channel->rekey)
silc_schedule_task_del_by_context(server->schedule, channel->rekey);
- if (!silc_idlist_del_channel(server->local_list, channel))
- silc_idlist_del_channel(server->global_list, channel);
+ if (silc_idlist_del_channel(server->local_list, channel))
+ server->stat.my_channels--;
+ else if (silc_idlist_del_channel(server->global_list, channel))
+ server->stat.my_channels--;
silc_buffer_free(clidp);
- server->stat.my_channels--;
return FALSE;
}
}
/* Remove the channel entry */
- if (!silc_idlist_del_channel(server->local_list, channel))
- silc_idlist_del_channel(server->global_list, channel);
- server->stat.my_channels--;
+ if (silc_idlist_del_channel(server->local_list, channel))
+ server->stat.my_channels--;
+ else if (silc_idlist_del_channel(server->global_list, channel))
+ server->stat.my_channels--;
return FALSE;
}