]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
resolve all tmpls which need resolving
authorAlan T. DeKok <aland@freeradius.org>
Thu, 7 Jul 2022 14:06:52 +0000 (10:06 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Thu, 7 Jul 2022 14:06:52 +0000 (10:06 -0400)
src/lib/unlang/xlat_tokenize.c

index f53ff884252d28b32c7a27dc8036feaf35ddc36b..30337e4d4234aa13437ca2db92a0b75b3098f44b 100644 (file)
@@ -1910,10 +1910,10 @@ int xlat_resolve(xlat_exp_head_t *head, xlat_res_rules_t const *xr_rules)
                                if (!xr_rules->allow_unresolved) {
                                error_unresolved:
                                        if (node->quote == T_BARE_WORD) {
-                                               fr_strerror_printf_push("Failed resolving attribute in expansion: %s",
+                                               fr_strerror_printf_push("Failed resolving expansion: %s",
                                                                        node->fmt);
                                        } else {
-                                               fr_strerror_printf_push("Failed resolving attribute in expansion: %c%s%c",
+                                               fr_strerror_printf_push("Failed resolving expansion: %c%s%c",
                                                                        fr_token_quote[node->quote], node->fmt, fr_token_quote[node->quote]);
                                        }
                                        return -1;
@@ -1938,16 +1938,13 @@ int xlat_resolve(xlat_exp_head_t *head, xlat_res_rules_t const *xr_rules)
                         *      Double-quoted etc. strings may contain xlats, so we try to resolve them now.
                         *      Or, convert them to data.
                         */
-                       if (node->quote != T_BARE_WORD) {
-                               if (tmpl_resolve(node->vpt, xr_rules->tr_rules) < 0) return -1;
-
-                               node->flags.needs_resolving = false;
-                               node->flags.pure = tmpl_is_data(node->vpt);
-                               break;
-                       }
+                       if (tmpl_resolve(node->vpt, xr_rules->tr_rules) < 0) return -1;
 
+                       node->flags.needs_resolving = false;
+                       node->flags.pure = tmpl_is_data(node->vpt);
                        break;
 
+
                default:
                        fr_assert(0);   /* Should not have been marked as unresolved */
                        return -1;