Skip to content

Commit

Permalink
Add similar ipaddr, ipv4addr, ipv6addr config items for realms
Browse files Browse the repository at this point in the history
  • Loading branch information
arr2036 committed May 30, 2014
1 parent daa02e0 commit 90f5081
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions src/main/realms.c
Original file line number Diff line number Diff line change
Expand Up @@ -272,8 +272,7 @@ static CONF_PARSER limit_config[] = {
{ NULL, -1, 0, NULL, NULL } /* end the list */
};

static fr_ipaddr_t hs_ip4addr;
static fr_ipaddr_t hs_ip6addr;
static fr_ipaddr_t hs_ipaddr;
static char const *hs_srcipaddr = NULL;
static char const *hs_type = NULL;
static char const *hs_check = NULL;
Expand All @@ -294,8 +293,9 @@ static CONF_PARSER home_server_coa[] = {
#endif

static CONF_PARSER home_server_config[] = {
{ "ipaddr", FR_CONF_POINTER(PW_TYPE_IPV4_ADDR, &hs_ip4addr), NULL },
{ "ipv6addr", FR_CONF_POINTER(PW_TYPE_IPV6_ADDR, &hs_ip6addr), NULL },
{ "ipaddr", FR_CONF_POINTER(PW_TYPE_IP_ADDR, &hs_ipaddr), NULL },
{ "ipv4addr", FR_CONF_POINTER(PW_TYPE_IPV4_ADDR, &hs_ipaddr), NULL },
{ "ipv6addr", FR_CONF_POINTER(PW_TYPE_IPV6_ADDR, &hs_ipaddr), NULL },
{ "virtual_server", FR_CONF_POINTER(PW_TYPE_STRING, &hs_virtual_server), NULL },

{ "port", FR_CONF_OFFSET(PW_TYPE_SHORT, home_server_t, port), "0" },
Expand Down Expand Up @@ -370,19 +370,16 @@ static int home_server_add(realm_config_t *rc, CONF_SECTION *cs)
* Last packet sent / received are zero.
*/

memset(&hs_ip4addr, 0, sizeof(hs_ip4addr));
memset(&hs_ip6addr, 0, sizeof(hs_ip6addr));
memset(&hs_ipaddr, 0, sizeof(hs_ipaddr));
if (cf_section_parse(cs, home, home_server_config) < 0) {
goto error;
}

/*
* Figure out which one to use.
*/
if (cf_pair_find(cs, "ipaddr")) {
memcpy(&home->ipaddr, &hs_ip4addr, sizeof(home->ipaddr));
} else if (cf_pair_find(cs, "ipv6addr")) {
memcpy(&home->ipaddr, &hs_ip6addr, sizeof(home->ipaddr));
if (cf_pair_find(cs, "ipaddr") || cf_pair_find(cs, "ipv4addr") || cf_pair_find(cs, "ipv6addr")) {
home->ipaddr = hs_ipaddr;
} else if ((cp = cf_pair_find(cs, "virtual_server")) != NULL) {
home->ipaddr.af = AF_UNSPEC;
home->server = cf_pair_value(cp);
Expand All @@ -408,7 +405,7 @@ static int home_server_add(realm_config_t *rc, CONF_SECTION *cs)
goto skip_port;

} else {
cf_log_err_cs(cs, "No ipaddr, ipv6addr, or virtual_server defined for home server \"%s\"", name2);
cf_log_err_cs(cs, "No ipaddr, ipv4addr, ipv6addr, or virtual_server defined for home server \"%s\"", name2);
error:
hs_type = NULL;
hs_check = NULL;
Expand Down

0 comments on commit 90f5081

Please sign in to comment.