X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fserverconfig.c;h=0eef766e6c867c94a2cd5bd4de8cd93a01daf62c;hb=675d6cba5a80e53c09c5eb6a03bafffebb6edab0;hp=4c576383f04a799756b6d0b4ff53e8794dcf152f;hpb=27062265305e9ccedad49f333a1e3cdb8333d6e3;p=silc.git diff --git a/apps/silcd/serverconfig.c b/apps/silcd/serverconfig.c index 4c576383..0eef766e 100644 --- a/apps/silcd/serverconfig.c +++ b/apps/silcd/serverconfig.c @@ -1853,3 +1853,31 @@ silc_server_config_get_primary_router(SilcServer server) return NULL; } + +/* If we have backup router configured that is going to replace us this + function returns it. */ + +SilcServerConfigRouter * +silc_server_config_get_backup_router(SilcServer server) +{ + SilcServerConfig config = server->config; + SilcServerConfigRouter *serv = NULL; + int i; + + if (server->server_type != SILC_ROUTER) + return NULL; + + serv = config->routers; + for (i = 0; serv; i++) { + if (serv->initiator == FALSE && serv->backup_router == TRUE && + serv->backup_local == TRUE && + !strcmp(server->config->server_info->primary->server_ip, + serv->backup_replace_ip) && + server->config->server_info->primary->port == + serv->backup_replace_port) + return serv; + serv = serv->next; + } + + return NULL; +}