From: Alan T. DeKok Date: Thu, 2 May 2019 20:03:41 +0000 (-0400) Subject: prefer exact match to wildcard match X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae58d94ea856ed4cc7f285da9490389399fc08b8;p=thirdparty%2Ffreeradius-server.git prefer exact match to wildcard match --- diff --git a/src/lib/server/virtual_servers.c b/src/lib/server/virtual_servers.c index 4b2c0827379..8e6437d689d 100644 --- a/src/lib/server/virtual_servers.c +++ b/src/lib/server/virtual_servers.c @@ -1238,24 +1238,25 @@ int virtual_server_section_component(rlm_components_t *component, char const *na rad_assert(server_section_name_tree != NULL); /* - * Look up the wildcard name first. + * Look up the specific name first. That way we can + * define both "accounting on", and "accounting *". */ if (name2 != CF_IDENT_ANY) { entry = rbtree_finddata(server_section_name_tree, &(virtual_server_compile_t) { .name = name1, - .name2 = CF_IDENT_ANY, + .name2 = name2, }); if (entry) goto done; } /* - * Then the specific name. + * Then look up the wildcard, if we didn't find any matching name2. */ entry = rbtree_finddata(server_section_name_tree, &(virtual_server_compile_t) { .name = name1, - .name2 = name2, + .name2 = CF_IDENT_ANY, }); if (!entry) return -1;