From: Alan T. DeKok Date: Wed, 15 Jun 2011 08:21:51 +0000 (+0200) Subject: Track parent virtual server in home server. X-Git-Tag: release_3_0_0_beta0~769 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f34ec80372d142089da6da5b0528e882e1d012f;p=thirdparty%2Ffreeradius-server.git Track parent virtual server in home server. This will eventually let home servers be defined for each virtual server. Right now, it doesn't yet work. --- diff --git a/src/include/realms.h b/src/include/realms.h index f32c51533e6..8322ee004ec 100644 --- a/src/include/realms.h +++ b/src/include/realms.h @@ -36,6 +36,7 @@ typedef struct home_server { const char *hostname; const char *server; /* for internal proxying */ + const char *parent_server; fr_ipaddr_t ipaddr; diff --git a/src/main/realms.c b/src/main/realms.c index 30fc25a3b21..b539a6636cf 100644 --- a/src/main/realms.c +++ b/src/main/realms.c @@ -794,6 +794,11 @@ static int home_server_add(realm_config_t *rc, CONF_SECTION *cs) if ((home->lifetime > 0) && (home->idle_timeout > home->lifetime)) home->idle_timeout = 0; + tls = cf_item_parent(cf_sectiontoitem(cs)); + if (strcmp(cf_section_name1(tls), "server") == 0) { + home->parent_server = cf_section_name2(tls); + } + if (dual) { home_server *home2 = rad_malloc(sizeof(*home2)); @@ -803,6 +808,7 @@ static int home_server_add(realm_config_t *rc, CONF_SECTION *cs) home2->port++; home2->ping_user_password = NULL; home2->cs = cs; + home2->parent_server = home->parent_server; if (home->no_response_fail == 2) home->no_response_fail = 0; if (home2->no_response_fail == 2) home2->no_response_fail = 1;