/* Close the connection to the server */
sock = (SilcSocketConnection)server_entry->connection;
+ if (server_entry->server_type == SILC_BACKUP_ROUTER)
+ server->backup_closed = TRUE;
+
server->backup_noswitch = TRUE;
if (server->router == server_entry) {
server->id_entry->router = NULL;
/* Statistics */
if (ctx->conn_type == SILC_SOCKET_TYPE_SERVER) {
server->stat.my_servers++;
+ server->stat.servers++;
} else {
server->stat.my_routers++;
server->stat.routers++;
}
- server->stat.servers++;
/* Check whether this connection is to be our primary router connection
if we do not already have the primary route. */
silc_idlist_del_server(server->global_list, user_data);
if (sock->type == SILC_SOCKET_TYPE_SERVER) {
server->stat.my_servers--;
+ server->stat.servers--;
} else {
server->stat.my_routers--;
server->stat.routers--;
}
- server->stat.servers--;
if (server->server_type == SILC_ROUTER)
server->stat.cell_servers--;
SILC_LOG_DEBUG(("Other protocol is running, wait for it to finish"));
silc_schedule_task_add(server->schedule, 0,
silc_server_backup_connected_later,
- proto_ctx, 10, 0,
+ proto_ctx, 15, 0,
SILC_TASK_TIMEOUT,
SILC_TASK_PRI_NORMAL);
return;
/* Start through scheduler */
silc_schedule_task_add(server->schedule, 0,
silc_server_backup_connected_later,
- proto_ctx, 2, 0,
+ proto_ctx, 5, 0,
SILC_TASK_TIMEOUT,
SILC_TASK_PRI_NORMAL);
} else {