]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
support list_as_attr in tmpl_get_list()
authorAlan T. DeKok <aland@freeradius.org>
Wed, 20 Jul 2022 17:05:20 +0000 (13:05 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 20 Jul 2022 17:05:20 +0000 (13:05 -0400)
src/lib/server/tmpl_eval.c

index d295e6a5e95a00eff9da0a01de595afb6b8b224c..eab827873f90931808efd725ef6a9355249a4cdf 100644 (file)
@@ -95,6 +95,18 @@ fr_pair_t *tmpl_get_list(request_t *request, tmpl_t const *vpt)
 
        if (!request) return NULL;
 
+       if (vpt->rules.attr.list_as_attr) {
+               fr_dict_attr_t const *da;
+               da = ((tmpl_attr_t *)tmpl_attr_list_head(&vpt->data.attribute.ar))->ar_da;
+
+               if (da == request_attr_request) return request->pair_list.request;
+               if (da == request_attr_reply) return request->pair_list.reply;
+               if (da == request_attr_control) return request->pair_list.control;
+               if (da == request_attr_state) return request->pair_list.state;
+
+               return NULL;
+       }
+
        list = tmpl_list(vpt);
 
        switch (list) {