From: Pekka Riikonen Date: Tue, 14 Oct 2003 15:37:52 +0000 (+0000) Subject: Backup router testing, fixes. X-Git-Tag: silc.client.0.9.13~3 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=cb1dbcf2dae9711cc8453bd2a51a938a41805f6c Backup router testing, fixes. --- diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index 6d12cefa..b9a0224f 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -1279,6 +1279,12 @@ void silc_server_notify(SilcServer server, SILC_LOG_DEBUG(("SERVER SIGNOFF notify")); + /* Backup router shouldn't accept SERVER_SIGNOFF's from normal routers + when the backup isn't acting as primary router. */ + if (sock->type == SILC_SOCKET_TYPE_SERVER && + server->backup_router && server->server_type == SILC_BACKUP_ROUTER) + return; + /* Get Server ID */ tmp = silc_argument_get_arg_type(args, 1, &tmp_len); if (!tmp) diff --git a/apps/silcd/server_backup.c b/apps/silcd/server_backup.c index df9d1b7e..dce3c9be 100644 --- a/apps/silcd/server_backup.c +++ b/apps/silcd/server_backup.c @@ -1242,7 +1242,7 @@ SILC_TASK_CALLBACK_GLOBAL(silc_server_protocol_backup) data[1] = 0; silc_server_packet_send(server, sock, SILC_PACKET_RESUME_ROUTER, 0, data, sizeof(data), FALSE); - silc_server_packet_queue_purge(server,sock); + silc_server_packet_queue_purge(server, sock); } /* Now send the same packet to backup */ @@ -1394,6 +1394,7 @@ SILC_TASK_CALLBACK(silc_server_protocol_backup_done) /* The SilcProtocol context was shared between all connections, clear it from all connections. */ if (sock->protocol == protocol) { + silc_server_packet_queue_purge(server, sock); sock->protocol = NULL; if (error) {