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)
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 */
/* 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) {