Automatically reconnect to backup router (on normal server) if
authorPekka Riikonen <priikone@silcnet.org>
Sun, 6 Oct 2002 14:00:14 +0000 (14:00 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sun, 6 Oct 2002 14:00:14 +0000 (14:00 +0000)
connection is lost.

CHANGES
TODO
apps/silcd/server.c

diff --git a/CHANGES b/CHANGES
index e19def6d87e0e0bb5ce5fc3131ad1df5a07b9d70..a110310cbd74e76ee787b29cf8c727b1b5c2f9ed 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -9,6 +9,9 @@ Sun Oct  6 16:48:32 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
          Save now also the port of the server/router and use that
          in comparison as well.  Affected file silcd/server_backup.c.
 
+       * Normal server now reconnects to backup router automatically
+         if connection is lost to it.  Affected file silcd/server.c.
+
 Thu Sep 26 13:51:02 CEST 2002  Pekka Riikonen <priikone@silcnet.org>
 
        * If packet processing fails (like integrity check fails)
diff --git a/TODO b/TODO
index e59cf674cb32f41e08e3c01e0c7e3403514309e6..165c657f5a26e21d3d4e35bd7d307de4958dcf66 100644 (file)
--- a/TODO
+++ b/TODO
@@ -30,9 +30,6 @@ TODO/bugs In SILC Client Library
 TODO/bugs In SILC Server
 ========================
 
- o Normal server doesn't reconnect to backup router if connection was
-   lost.
-
  o Add support for the <Requested Attributes> in WHOIS.  Sending and
    reception, with clients and servers should be added.
 
index 0a67cbc0695b76d8bb7aa6a73b0a1f1a1f85549b..b47652d2038a0d44699a23f92b99d25e6489b095 100644 (file)
@@ -3159,6 +3159,14 @@ void silc_server_free_sock_user_data(SilcServer server,
        /* Mark this connection as replaced */
        silc_server_backup_replaced_add(server, user_data->id,
                                        backup_router);
+      } else if (server->server_type == SILC_SERVER &&
+                sock->type == SILC_SOCKET_TYPE_ROUTER) {
+       /* Reconnect to the router (backup) */
+       silc_schedule_task_add(server->schedule, 0,
+                              silc_server_connect_to_router,
+                              server, 1, 0,
+                              SILC_TASK_TIMEOUT,
+                              SILC_TASK_PRI_NORMAL);
       }
 
       if (!backup_router) {