]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Track parent virtual server in home server.
authorAlan T. DeKok <aland@freeradius.org>
Wed, 15 Jun 2011 08:21:51 +0000 (10:21 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 15 Jun 2011 08:21:51 +0000 (10:21 +0200)
This will eventually let home servers be defined for each
virtual server.  Right now, it doesn't yet work.

src/include/realms.h
src/main/realms.c

index f32c51533e60241eb03c3bd7b8a59ee412daab38..8322ee004ec08787cb8aebf4499aa13ac4d3531e 100644 (file)
@@ -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;
 
index 30fc25a3b2191b907c00835a2c0319729e0fb246..b539a6636cf94b2b8bd2b1880b4ca348fc462744 100644 (file)
@@ -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;