From: Alan T. DeKok Date: Wed, 12 Aug 2009 12:15:58 +0000 (+0200) Subject: Look up home servers by type, too. X-Git-Tag: release_2_1_7~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab21b28ecb398989eef1bb8426a7a500c94691a0;p=thirdparty%2Ffreeradius-server.git Look up home servers by type, too. --- diff --git a/src/include/realms.h b/src/include/realms.h index 34d22a6b9bf..29cb7f33666 100644 --- a/src/include/realms.h +++ b/src/include/realms.h @@ -132,7 +132,7 @@ home_server *home_server_ldb(const char *realmname, home_pool_t *pool, REQUEST * home_server *home_server_find(fr_ipaddr_t *ipaddr, int port); int home_server_create_listeners(void *head); #ifdef WITH_COA -home_server *home_server_byname(const char *name); +home_server *home_server_byname(const char *name, int type); #endif #ifdef WITH_STATS home_server *home_server_bynumber(int number); diff --git a/src/main/client.c b/src/main/client.c index f09909705d4..dc7a905506a 100644 --- a/src/main/client.c +++ b/src/main/client.c @@ -717,9 +717,10 @@ static RADCLIENT *client_parse(CONF_SECTION *cs, int in_server) if (c->coa_name) { c->coa_pool = home_pool_byname(c->coa_name, HOME_TYPE_COA); if (!c->coa_pool) { - c->coa_server = home_server_byname(c->coa_name); + c->coa_server = home_server_byname(c->coa_name, + HOME_TYPE_COA); } - if (!c->coa_server) { + if (!c->coa_pool && !c->coa_server) { client_free(c); cf_log_err(cf_sectiontoitem(cs), "No such home_server or home_server_pool \"%s\"", c->coa_name); return NULL; diff --git a/src/main/realms.c b/src/main/realms.c index a3c11e23f70..a0cb7963e64 100644 --- a/src/main/realms.c +++ b/src/main/realms.c @@ -2139,11 +2139,12 @@ home_server *home_server_find(fr_ipaddr_t *ipaddr, int port) } #ifdef WITH_COA -home_server *home_server_byname(const char *name) +home_server *home_server_byname(const char *name, int type) { home_server myhome; memset(&myhome, 0, sizeof(myhome)); + myhome.type = type; myhome.name = name; return rbtree_finddata(home_servers_byname, &myhome);