]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Use the default request if there's no "." in the reference.
authorAlan T. DeKok <aland@freeradius.org>
Wed, 4 Sep 2013 14:41:52 +0000 (10:41 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 4 Sep 2013 14:46:46 +0000 (10:46 -0400)
update outer.reply {
User-Name := foo
}

ends up parsing "User-Name" with a default list of "outer",
BUT because "User-Name" has no ".", the old code would return
a hard-coded CURRENT

src/main/map.c
src/main/util.c

index b4fd5a109c1395852508946a252d4669945fff62..2acada5fca14572e60da4ea38cb27568de3b8a90 100644 (file)
@@ -492,7 +492,7 @@ int radius_attrmap(CONF_SECTION *cs, value_pair_map_t **head,
 
        cs_list = p = cf_section_name2(cs);
        if (cs_list) {
-               request_def = radius_request_name(&p, REQUEST_UNKNOWN);
+               request_def = radius_request_name(&p, REQUEST_CURRENT);
                if (request_def == REQUEST_UNKNOWN) {
                        cf_log_err(ci, "Default request specified "
                                   "in mapping section is invalid");
index 51c5721a06be2faca1175676ec7420ccf6f086f5..9850ff037250f8d0a2e67f4e747260ce64c47fa3 100644 (file)
@@ -970,7 +970,7 @@ request_refs_t radius_request_name(char const **name, request_refs_t def)
 
        p = strchr(*name, '.');
        if (!p) {
-               return REQUEST_CURRENT;
+               return def;
        }
 
        /*
@@ -980,7 +980,7 @@ request_refs_t radius_request_name(char const **name, request_refs_t def)
                                p - *name);
 
        /*
-        *      If we get a VALID LIST, skip it.
+        *      If we get a valid name, skip it.
         */
        if (request != REQUEST_UNKNOWN) {
                *name = p + 1;