]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
xlat_resolve() no longer needs flags
authorAlan T. DeKok <aland@freeradius.org>
Thu, 12 May 2022 00:50:53 +0000 (20:50 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 16 May 2022 19:00:18 +0000 (15:00 -0400)
src/bin/unit_test_module.c
src/lib/server/tmpl_tokenize.c
src/lib/unlang/xlat.h
src/lib/unlang/xlat_builtin.c
src/lib/unlang/xlat_tokenize.c

index 296ddc247aead5efe97830026278453efaf55928..adee93ce965d5dd4a97285e7129cc62f37abbad0 100644 (file)
@@ -445,7 +445,7 @@ static bool do_xlats(fr_event_list_t *el, char const *filename, FILE *fp)
                                continue;
                        }
 
-                       if (xlat_resolve(head, NULL, NULL) < 0) {
+                       if (xlat_resolve(head, NULL) < 0) {
                                talloc_free(xlat_ctx);
                                snprintf(output, sizeof(output), "ERROR resolving xlat: %s", fr_strerror());
                                continue;
index 7ccfdd7b8323aa0d23a9efd21988437bad6f1af5..5f90726c0089e7ee06b72eda3fe19db4418e3721 100644 (file)
@@ -3557,7 +3557,7 @@ static inline CC_HINT(always_inline) int tmpl_attr_resolve(tmpl_t *vpt, tmpl_res
 static inline CC_HINT(always_inline)
 int tmpl_xlat_resolve(tmpl_t *vpt, tmpl_res_rules_t const *tr_rules)
 {
-       if (xlat_resolve(vpt->data.xlat.ex, NULL,
+       if (xlat_resolve(vpt->data.xlat.ex,
                         &(xlat_res_rules_t){
                                .tr_rules = tr_rules,
                                .allow_unresolved = false
index 7432e8ae2bbc223ccad76dde00e90fa4468c5835..1927959e97b41de02775c4f8b81758b9d8daf5af 100644 (file)
@@ -328,7 +328,7 @@ bool                xlat_needs_resolving(xlat_exp_head_t const *head);
 
 bool           xlat_to_string(TALLOC_CTX *ctx, char **str, xlat_exp_head_t **head);
 
-int            xlat_resolve(xlat_exp_head_t *head, xlat_flags_t *flags, xlat_res_rules_t const *xr_rules);
+int            xlat_resolve(xlat_exp_head_t *head, xlat_res_rules_t const *xr_rules);
 
 xlat_t         *xlat_register_module(TALLOC_CTX *ctx, module_inst_ctx_t const *mctx,
                                      char const *name, xlat_func_t func, xlat_flags_t const *flags);
index 5bc55584ff37fe7bc582758dafcbae43457dafa1..72fbabb551b709c5b2207c69cf581c623a50423f 100644 (file)
@@ -1611,7 +1611,7 @@ static xlat_action_t xlat_func_eval(TALLOC_CTX *ctx, fr_dcursor_t *out,
         *      unresolved.
         */
        if (rctx->ex->flags.needs_resolving &&
-           (xlat_resolve(rctx->ex, NULL, &(xlat_res_rules_t){ .allow_unresolved = false }) < 0)) {
+           (xlat_resolve(rctx->ex, &(xlat_res_rules_t){ .allow_unresolved = false }) < 0)) {
                RPEDEBUG("Unresolved expansion functions in expansion");
                goto error;
 
index 755fcd692b8d02e72a2618c98a288ec9e547b01c..09e81b4d9d479480726153aab652ec8bfdb0994f 100644 (file)
@@ -1651,19 +1651,18 @@ bool xlat_to_string(TALLOC_CTX *ctx, char **str, xlat_exp_head_t **head)
 /** Walk over an xlat tree recursively, resolving any unresolved functions or references
  *
  * @param[in,out] head         of xlat tree to resolve.
- * @param[in,out] flags                that control evaluation and parsing.
  * @param[in] xr_rules         Specifies rules to use for resolution passes after initial
  *                             tokenization.
  * @return
  *     - 0 on success.
  *     - -1 on failure.
  */
-int xlat_resolve(xlat_exp_head_t *head, xlat_flags_t *flags, xlat_res_rules_t const *xr_rules)
+int xlat_resolve(xlat_exp_head_t *head, xlat_res_rules_t const *xr_rules)
 {
        static xlat_res_rules_t         xr_default;
        xlat_flags_t                    our_flags;
 
-       if (!head->flags.needs_resolving && flags && !flags->needs_resolving) return 0;                 /* Already done */
+       if (!head->flags.needs_resolving) return 0;                     /* Already done */
 
        if (!xr_rules) xr_rules = &xr_default;
 
@@ -1675,7 +1674,7 @@ int xlat_resolve(xlat_exp_head_t *head, xlat_flags_t *flags, xlat_res_rules_t co
 
                switch (node->type) {
                case XLAT_GROUP:
-                       if (xlat_resolve(node->group, NULL, xr_rules) < 0) return -1;
+                       if (xlat_resolve(node->group, xr_rules) < 0) return -1;
                        node->flags = node->group->flags;
                        break;
 
@@ -1685,8 +1684,8 @@ int xlat_resolve(xlat_exp_head_t *head, xlat_flags_t *flags, xlat_res_rules_t co
                 *      Do resolution for a OR b
                 */
                case XLAT_ALTERNATE:
-                       if ((xlat_resolve(node->alternate[0], NULL, xr_rules) < 0) ||
-                           (xlat_resolve(node->alternate[1], NULL, xr_rules) < 0)) return -1;
+                       if ((xlat_resolve(node->alternate[0], xr_rules) < 0) ||
+                           (xlat_resolve(node->alternate[1], xr_rules) < 0)) return -1;
 
                        node->flags = node->alternate[0]->flags;
                        xlat_flags_merge(&node->flags, &node->alternate[1]->flags);
@@ -1696,7 +1695,7 @@ int xlat_resolve(xlat_exp_head_t *head, xlat_flags_t *flags, xlat_res_rules_t co
                 *      A resolved function with unresolved args
                 */
                case XLAT_FUNC:
-                       if (xlat_resolve(node->call.args, NULL, xr_rules) < 0) return -1;
+                       if (xlat_resolve(node->call.args, xr_rules) < 0) return -1;
                        node->flags = node->call.func->flags;
                        xlat_flags_merge(&node->flags, &node->call.args->flags);
                        break;
@@ -1712,7 +1711,7 @@ int xlat_resolve(xlat_exp_head_t *head, xlat_flags_t *flags, xlat_res_rules_t co
                         *      We can't tell if it's just the function
                         *      that needs resolving or its children too.
                         */
-                       if (xlat_resolve(node->call.args, NULL, xr_rules) < 0) return -1;
+                       if (xlat_resolve(node->call.args, xr_rules) < 0) return -1;
 
                        /*
                         *      Try and find the function
@@ -1831,7 +1830,6 @@ int xlat_resolve(xlat_exp_head_t *head, xlat_flags_t *flags, xlat_res_rules_t co
        }
 
        head->flags = our_flags;
-       if (flags) *flags = our_flags;  /* Update parent flags - not merge, replacement */
 
        return 0;
 }