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);
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;
}
#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);