+Thu Oct 18 09:18:58 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
+
+ * Call the silc_server_udpate_servers_by_server in the
+ primary router that comes back online in the backup resuming
+ protocol. Otherwise it routes packets wrong. Affected file
+ silcd/server_util.[ch], silcd/server_backup.c.
+
Wed Oct 17 16:51:18 EDT 2001 Pekka Riikonen <priikone@silcnet.org>
* Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
TODO/bugs In SILC Server
========================
- o After backup resuming protocol some of the server's SilcIDListData
- on primary that came back online are NULL. Seems actually that the
- udpate_client_by_server does not work since the client->router, and
- the client->router->connection->user_data are not same, and they
- should be.
+ o After backup resume protocol the TOPIC_SET was not handled correctly
+ by all (unknown Channel ID).
o Server signoff notifys does not go to normal servers from routers.
/* Switch announced informations to our primary router of using the
backup router. */
+ silc_server_update_servers_by_server(server, ctx->sock->user_data,
+ server->router);
silc_server_update_clients_by_server(server, ctx->sock->user_data,
server->router, TRUE, FALSE);
SILC_LOG_DEBUG(("Found (local) %s",
silc_id_render(server_entry->id, SILC_ID_SERVER)));
-#if 0
if (!server_entry->data.send_key && server_entry->router) {
SILC_LOG_DEBUG(("Server not locally connected, use its router"));
/* If the client is not marked as local then move it to local list
}
server_entry = server_entry->router;
} else {
-#endif
/* If the client is not marked as local then move it to local list
since the server is local. */
if (server_entry->server_type != SILC_BACKUP_ROUTER && !local) {
client_cache->expire);
silc_idcache_del_by_context(server->global_list->clients, client);
}
-#if 0
}
-#endif
silc_idcache_list_free(list);
return server_entry;
SILC_LOG_DEBUG(("Found (global) %s",
silc_id_render(server_entry->id, SILC_ID_SERVER)));
-#if 0
if (!server_entry->data.send_key && server_entry->router) {
SILC_LOG_DEBUG(("Server not locally connected, use its router"));
/* If the client is marked as local then move it to global list
}
server_entry = server_entry->router;
} else {
-#endif
/* If the client is marked as local then move it to global list
since the server is global. */
if (server_entry->server_type != SILC_BACKUP_ROUTER && local) {
client_cache->expire);
silc_idcache_del_by_context(server->local_list->clients, client);
}
-#if 0
}
-#endif
silc_idcache_list_free(list);
return server_entry;