Send SERVER_SIGNOFF to local backup routers from primary router.
[silc.git] / apps / silcd / server_util.c
index 27077f6820c305de990c8f1a6e62d67727850a91..93f2d5bd4687cb29bf7144c295953e469e5ab070 100644 (file)
@@ -176,7 +176,7 @@ bool silc_server_remove_clients_by_server(SilcServer server,
        client = (SilcClientEntry)id_cache->context;
 
        /* If client is not registered, is not originated from `router'
-          or is not owned by `entry', skip it. */
+          and is not owned by `entry', skip it. */
        if (!(client->data.status & SILC_IDLIST_STATUS_REGISTERED) ||
            client->router != router ||
            (router != entry && !SILC_ID_COMPARE(client->id, entry->id,
@@ -236,7 +236,7 @@ bool silc_server_remove_clients_by_server(SilcServer server,
        client = (SilcClientEntry)id_cache->context;
 
        /* If client is not registered, is not originated from `router'
-          or is not owned by `entry', skip it. */
+          and is not owned by `entry', skip it. */
        if (!(client->data.status & SILC_IDLIST_STATUS_REGISTERED) ||
            client->router != router ||
            (router != entry && !SILC_ID_COMPARE(client->id, entry->id,
@@ -332,6 +332,10 @@ bool silc_server_remove_clients_by_server(SilcServer server,
                                    SILC_PACKET_NOTIFY, 0, FALSE,
                                    not->data, not->len, FALSE);
 
+    /* Send notify also to local backup routers */
+    silc_server_backup_send(server, NULL, SILC_PACKET_NOTIFY, 0,
+                           not->data, not->len, FALSE, TRUE);
+
     silc_buffer_free(args);
     silc_buffer_free(not);
     for (i = 0; i < argc; i++)