X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserver.c;h=34f7b9ba34d39d3ecc2f96cb104c2290b4669a4e;hb=8b353496b56f4765ac810ac5400865e815ab4517;hp=4f8658bd629150c00c8a9a4df82578767def5adb;hpb=dbd4f282d28d8bdf3cbd3419ba16d4774b6b4349;p=silc.git diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 4f8658bd..34f7b9ba 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -1915,6 +1915,12 @@ SILC_TASK_CALLBACK(silc_server_accept_new_connection_final) if (backup_local) ctx->conn_type = SILC_SOCKET_TYPE_SERVER; new_server->server_type = SILC_BACKUP_ROUTER; + + /* Remove the backup waiting with timeout */ + silc_schedule_task_add(server->schedule, 0, + silc_server_backup_router_wait, + (void *)server, 5, 0, + SILC_TASK_TIMEOUT, SILC_TASK_PRI_NORMAL); } /* Statistics */ @@ -2153,6 +2159,11 @@ SILC_TASK_CALLBACK(silc_server_packet_parse_real) SILC_LOG_DEBUG(("Connection is disabled")); goto out; } + if (ret != SILC_PACKET_HEARTBEAT && + idata && idata->status & SILC_IDLIST_STATUS_DISABLED) { + SILC_LOG_DEBUG(("Connection is disabled")); + goto out; + } if (ret == SILC_PACKET_NONE) { SILC_LOG_DEBUG(("Error parsing packet")); @@ -3696,6 +3707,7 @@ SilcChannelEntry silc_server_save_channel_key(SilcServer server, if (!channel) { SILC_LOG_ERROR(("Received key for non-existent channel %s", silc_id_render(id, SILC_ID_CHANNEL))); + assert(FALSE); goto out; } }