From: Alan T. DeKok Date: Sun, 1 Sep 2024 11:50:56 +0000 (-0400) Subject: revert everything related to attribute leaf indexes X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12e0d249969a484d0ed6ae803bb16daeb693659b;p=thirdparty%2Ffreeradius-server.git revert everything related to attribute leaf indexes as we add different types of indexes, we should really audit the use of ar->ar_num --- diff --git a/src/lib/server/tmpl_tokenize.c b/src/lib/server/tmpl_tokenize.c index f2e50862b3..f365147b1c 100644 --- a/src/lib/server/tmpl_tokenize.c +++ b/src/lib/server/tmpl_tokenize.c @@ -1197,27 +1197,21 @@ void tmpl_attr_rewrite_leaf_num(tmpl_t *vpt, int16_t from, int16_t to) if (tmpl_attr_list_num_elements(tmpl_attr(vpt)) == 0) return; ref = tmpl_attr_list_tail(tmpl_attr(vpt)); + if (ref->ar_num == from) ref->ar_num = to; - switch (ref->ar_filter_type) { - case TMPL_ATTR_FILTER_TYPE_NONE: - if (from != NUM_UNSPEC) break; - - ref->ar_filter_type = TMPL_ATTR_FILTER_TYPE_INDEX; - ref->ar_num = to; - break; + TMPL_ATTR_VERIFY(vpt); +} - case TMPL_ATTR_FILTER_TYPE_INDEX: - if (ref->ar_num != from) break; +/** Rewrite all instances of an array number + * + */ +void tmpl_attr_rewrite_num(tmpl_t *vpt, int16_t from, int16_t to) +{ + tmpl_attr_t *ref = NULL; - ref->ar_num = to; - break; + tmpl_assert_type(tmpl_is_attr(vpt) || tmpl_is_attr_unresolved(vpt)); - /* - * Don't rewrite non-index types. - */ - default: - break; - } + while ((ref = tmpl_attr_list_next(tmpl_attr(vpt), ref))) if (ref->ar_num == from) ref->ar_num = to; TMPL_ATTR_VERIFY(vpt); }