+Sun Sep 8 13:13:44 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
+
+ * Distribute the SERVER_SIGNOFF notify also to local backup
+ routers from the primary router. The backup router may not
+ have the signing of local server directly connected and need
+ to know about the signoff. Affected file silcd/server_util.c.
+
+ * Use the primary router as the origin of the locally connected
+ server when it is disconnecting from the backup router since
+ that's where it really is coming from. Now the clients from
+ the disconnecting server are removed correctly and "shadow"
+ clients are not left to the backup router. Affected file
+ silcd/server.c.
+
Sat Sep 7 22:26:50 EEST 2002 Pekka Riikonen <priikone@silcnet.org>
* If normal server is standalone and found existing but disabled
/* Get server entry */
server_entry = silc_idlist_find_server_by_id(server->global_list,
server_id, TRUE, NULL);
- local = TRUE;
+ local = FALSE;
if (!server_entry) {
server_entry = silc_idlist_find_server_by_id(server->local_list,
server_id, TRUE, NULL);
silc_server_remove_servers_by_server(server, user_data, TRUE);
/* Remove the clients that this server owns as they will become
- invalid now too. */
- silc_server_remove_clients_by_server(server, user_data,
- user_data, TRUE);
+ invalid now too. For backup router the server is actually
+ coming from the primary router, so mark that as the owner
+ of this entry. */
+ if (server->server_type == SILC_BACKUP_ROUTER &&
+ sock->type == SILC_SOCKET_TYPE_SERVER)
+ silc_server_remove_clients_by_server(server, server->router,
+ user_data, TRUE);
+ else
+ silc_server_remove_clients_by_server(server, user_data,
+ user_data, TRUE);
/* Remove channels owned by this server */
if (server->server_type == SILC_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++)
Sent when server quits SILC network. Those clients from this
server that are on channels must be removed from the channel.
- Max Arguments: 2000
+ Max Arguments: 256
Arguments: (1) <Server ID> (n) [<Client ID>] [...]
The <Server ID> is the server's ID. The rest of the arguments