updates.
authorPekka Riikonen <priikone@silcnet.org>
Thu, 18 Oct 2001 06:19:23 +0000 (06:19 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 18 Oct 2001 06:19:23 +0000 (06:19 +0000)
CHANGES
TODO
apps/silcd/server_backup.c
apps/silcd/server_util.c

diff --git a/CHANGES b/CHANGES
index 660045cb75302a9952c4f6258104517e3b401746..e8c36a11223334f87396a54bbedf8d94feb5b983 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,10 @@
+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
diff --git a/TODO b/TODO
index ca95f2e1b3b051e1666f304a6c664b9d2aa41da4..2c984a4be6e179fdab23792a406e3cceff1d422e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -46,11 +46,8 @@ TODO/bugs In SILC Client Library
 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.
 
index e406431978852ca93872f7e2640f25ebf889387d..423710f9330b299dc48d7ddad3282a0132e39ffa 100644 (file)
@@ -983,6 +983,8 @@ SILC_TASK_CALLBACK_GLOBAL(silc_server_protocol_backup)
 
       /* 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);
 
index b86abec99395c8b45fca87da86db8975b2567214..61b7f926fb54187b398e2604065607d70d44a000 100644 (file)
@@ -353,7 +353,6 @@ silc_server_update_clients_by_real_server(SilcServer server,
        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
@@ -367,7 +366,6 @@ silc_server_update_clients_by_real_server(SilcServer server,
          }
          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) {
@@ -377,9 +375,7 @@ silc_server_update_clients_by_real_server(SilcServer server,
                             client_cache->expire);
            silc_idcache_del_by_context(server->global_list->clients, client);
          }
-#if 0
        }
-#endif
 
        silc_idcache_list_free(list);
        return server_entry;
@@ -404,7 +400,6 @@ silc_server_update_clients_by_real_server(SilcServer server,
        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
@@ -418,7 +413,6 @@ silc_server_update_clients_by_real_server(SilcServer server,
          }
          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) {
@@ -428,9 +422,7 @@ silc_server_update_clients_by_real_server(SilcServer server,
                             client_cache->expire);
            silc_idcache_del_by_context(server->local_list->clients, client);
          }
-#if 0
        }
-#endif
 
        silc_idcache_list_free(list);
        return server_entry;