From: Alan T. DeKok Date: Wed, 15 Jun 2011 08:31:31 +0000 (+0200) Subject: Tie virtual servers to home servers X-Git-Tag: release_3_0_0_beta0~768 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b4000d3a88941865b7595a3775ef37834d49b7e;p=thirdparty%2Ffreeradius-server.git Tie virtual servers to home servers If a home is defined in a virtual, proxying from that virtual will use globally defined homes, OR homes specific to that virtual --- diff --git a/src/main/realms.c b/src/main/realms.c index b539a6636cf..c82131dbd8e 100644 --- a/src/main/realms.c +++ b/src/main/realms.c @@ -2121,6 +2121,30 @@ home_server *home_server_ldb(const char *realmname, } #endif + /* + * Default virtual: ignore homes tied to a + * virtual. + */ + if (!request->server && home->parent_server) { + continue; + } + + /* + * A virtual AND home is tied to virtual, + * ignore ones which don't match. + */ + if (request->server && home->parent_server && + strcmp(request->server, home->parent_server) != 0) { + continue; + } + + /* + * Allow request->server && !home->parent_server + * + * i.e. virtuals can proxy to globally defined + * homes. + */ + /* * It's zombie, so we remember the first zombie * we find, but we don't mark it as a "live"