From: Pekka Riikonen Date: Sun, 6 Oct 2002 14:00:14 +0000 (+0000) Subject: Automatically reconnect to backup router (on normal server) if X-Git-Tag: silc.client.0.9.6~60 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=53f46f12270d625c223bcd7883c6c2f9240408a4 Automatically reconnect to backup router (on normal server) if connection is lost. --- diff --git a/CHANGES b/CHANGES index e19def6d..a110310c 100644 --- a/CHANGES +++ b/CHANGES @@ -9,6 +9,9 @@ Sun Oct 6 16:48:32 EEST 2002 Pekka Riikonen 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 * If packet processing fails (like integrity check fails) diff --git a/TODO b/TODO index e59cf674..165c657f 100644 --- 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 in WHOIS. Sending and reception, with clients and servers should be added. diff --git a/apps/silcd/server.c b/apps/silcd/server.c index 0a67cbc0..b47652d2 100644 --- a/apps/silcd/server.c +++ b/apps/silcd/server.c @@ -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) {