]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
remove flags from xlat tokenize functions.
authorAlan T. DeKok <aland@freeradius.org>
Thu, 12 May 2022 01:58:40 +0000 (21:58 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 16 May 2022 19:00:21 +0000 (15:00 -0400)
The flags are now only used for xlat registrations.

src/bin/unit_test_attribute.c
src/bin/unit_test_module.c
src/lib/server/cf_parse.c
src/lib/server/tmpl_tokenize.c
src/lib/unlang/xlat.h
src/lib/unlang/xlat_builtin.c
src/lib/unlang/xlat_eval.c
src/lib/unlang/xlat_expr.c
src/lib/unlang/xlat_tokenize.c

index d3c02acd14df3cbe9c6a8412741c952d988b4338..dc05a05a37c5c574a4494bb542243ebea3ef2da7 100644 (file)
@@ -2669,7 +2669,7 @@ static size_t command_xlat_normalise(command_result_t *result, command_file_ctx_
        size_t                  input_len = strlen(in), escaped_len;
        fr_sbuff_parse_rules_t  p_rules = { .escapes = &fr_value_unescape_double };
 
-       dec_len = xlat_tokenize(cc->tmp_ctx, &head, NULL, &FR_SBUFF_IN(in, input_len), &p_rules,
+       dec_len = xlat_tokenize(cc->tmp_ctx, &head, &FR_SBUFF_IN(in, input_len), &p_rules,
                                &(tmpl_attr_rules_t) {
                                        .dict_def = cc->tmpl_rules.attr.dict_def ?
                                                cc->tmpl_rules.attr.dict_def : cc->config->dict,
@@ -2702,7 +2702,7 @@ static size_t command_xlat_expr(command_result_t *result, command_file_ctx_t *cc
        size_t                  input_len = strlen(in), escaped_len;
 //     fr_sbuff_parse_rules_t  p_rules = { .escapes = &fr_value_unescape_double };
 
-       dec_len = xlat_tokenize_expression(cc->tmp_ctx, &head, NULL, &FR_SBUFF_IN(in, input_len), NULL,
+       dec_len = xlat_tokenize_expression(cc->tmp_ctx, &head, &FR_SBUFF_IN(in, input_len), NULL,
                                           &(tmpl_rules_t) {
                                                .attr = {
                                                        .dict_def = cc->tmpl_rules.attr.dict_def ?
@@ -2736,11 +2736,8 @@ static size_t command_xlat_purify(command_result_t *result, command_file_ctx_t *
        xlat_exp_head_t         *head = NULL;
        size_t                  input_len = strlen(in), escaped_len;
 //     fr_sbuff_parse_rules_t  p_rules = { .escapes = &fr_value_unescape_double };
-       xlat_flags_t            flags = {
-               .pure = true,
-       };
 
-       dec_len = xlat_tokenize_expression(cc->tmp_ctx, &head, &flags, &FR_SBUFF_IN(in, input_len), NULL,
+       dec_len = xlat_tokenize_expression(cc->tmp_ctx, &head, &FR_SBUFF_IN(in, input_len), NULL,
                                           &(tmpl_rules_t) {
                                                   .attr = {
                                                        .dict_def = cc->tmpl_rules.attr.dict_def ?
index adee93ce965d5dd4a97285e7129cc62f37abbad0..b7963c52c7f840f801e62e1c25cacaa5c4d8c8f2 100644 (file)
@@ -385,7 +385,7 @@ static bool do_xlats(fr_event_list_t *el, char const *filename, FILE *fp)
                        xlat_exp_head_t         *head = NULL;
                        fr_sbuff_parse_rules_t  p_rules = { .escapes = &fr_value_unescape_double };
 
-                       slen = xlat_tokenize_ephemeral(xlat_ctx, &head, el, NULL,
+                       slen = xlat_tokenize_ephemeral(xlat_ctx, &head, el,
                                                       &FR_SBUFF_IN(fmt, talloc_array_length(fmt) - 1), &p_rules, NULL);
                        if (slen <= 0) {
                                talloc_free(xlat_ctx);
@@ -421,7 +421,7 @@ static bool do_xlats(fr_event_list_t *el, char const *filename, FILE *fp)
                        char                    *fmt = talloc_typed_strdup(xlat_ctx, input + 10);
                        xlat_exp_head_t         *head = NULL;
 
-                       slen = xlat_tokenize_ephemeral_expression(xlat_ctx, &head, el, NULL,
+                       slen = xlat_tokenize_ephemeral_expression(xlat_ctx, &head, el,
                                                                  &FR_SBUFF_IN(fmt, talloc_array_length(fmt) - 1),
                                                                  NULL,
                                                                  &(tmpl_rules_t) {
index c3471472bbf99a858b1c86c4374e49f9b7b75036..d793042edffa09f68c20e6a95b912bfff556bea4 100644 (file)
@@ -1482,7 +1482,7 @@ int cf_section_parse_pass2(void *base, CONF_SECTION *cs)
                        /*
                         *      xlat expansions should be parseable.
                         */
-                       slen = xlat_tokenize(cs, &xlat, NULL,
+                       slen = xlat_tokenize(cs, &xlat,
                                             &FR_SBUFF_IN(cp->value, talloc_array_length(cp->value) - 1), NULL,
                                             &(tmpl_attr_rules_t){
                                                .dict_def = dict,
index 5f90726c0089e7ee06b72eda3fe19db4418e3721..6fb986536d3fb17808a8aa3688f5372e52e41bf7 100644 (file)
@@ -2681,10 +2681,10 @@ ssize_t tmpl_afrom_substr(TALLOC_CTX *ctx, tmpl_t **out,
 
                        vpt = tmpl_alloc_null(ctx);
                        if (!t_rules->at_runtime) {
-                               slen = xlat_tokenize(vpt, &head, NULL, &our_in, p_rules, &t_rules->attr);
+                               slen = xlat_tokenize(vpt, &head, &our_in, p_rules, &t_rules->attr);
                        } else {
                                slen = xlat_tokenize_ephemeral(vpt, &head,
-                                                              t_rules->xlat.runtime_el, NULL, &our_in,
+                                                              t_rules->xlat.runtime_el, &our_in,
                                                               p_rules, t_rules);
                        }
 
@@ -2865,10 +2865,10 @@ ssize_t tmpl_afrom_substr(TALLOC_CTX *ctx, tmpl_t **out,
                vpt = tmpl_alloc_null(ctx);
 
                if (!t_rules->at_runtime) {
-                       slen = xlat_tokenize(vpt, &head, NULL, &our_in, p_rules, &t_rules->attr);
+                       slen = xlat_tokenize(vpt, &head, &our_in, p_rules, &t_rules->attr);
                } else {
                        slen = xlat_tokenize_ephemeral(vpt, &head, t_rules->xlat.runtime_el,
-                                                      NULL, &our_in, p_rules, t_rules);
+                                                      &our_in, p_rules, t_rules);
                }
                if (!head) return slen;
 
@@ -2954,7 +2954,7 @@ ssize_t tmpl_afrom_substr(TALLOC_CTX *ctx, tmpl_t **out,
 
                vpt = tmpl_alloc_null(ctx);
 
-               slen = xlat_tokenize(vpt, &head, NULL, &our_in, p_rules, &t_rules->attr);
+               slen = xlat_tokenize(vpt, &head, &our_in, p_rules, &t_rules->attr);
                if (!head) return slen;
 
                /*
index 1927959e97b41de02775c4f8b81758b9d8daf5af..45e198de42c976453b3ab7717f601591fb806410 100644 (file)
@@ -291,23 +291,22 @@ int               xlat_flatten_compiled_argv(TALLOC_CTX *ctx, xlat_exp_head_t ***argv, xlat_e
 bool           xlat_async_required(xlat_exp_head_t const *xlat);
 
 
-ssize_t                xlat_tokenize_expression(TALLOC_CTX *ctx, xlat_exp_head_t **head, xlat_flags_t *flags, fr_sbuff_t *in,
+ssize_t                xlat_tokenize_expression(TALLOC_CTX *ctx, xlat_exp_head_t **head, fr_sbuff_t *in,
                                         fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t const *t_rules);
 
 ssize_t                xlat_tokenize_ephemeral_expression(TALLOC_CTX *ctx, xlat_exp_head_t **head,
                                                   fr_event_list_t *el,
-                                                  xlat_flags_t *flags, fr_sbuff_t *in,
+                                                  fr_sbuff_t *in,
                                                   fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t const *t_rules);
 
 ssize_t                xlat_tokenize_ephemeral(TALLOC_CTX *ctx, xlat_exp_head_t **head,
-                                       fr_event_list_t *el,
-                                       xlat_flags_t *flags, fr_sbuff_t *in,
+                                       fr_event_list_t *el, fr_sbuff_t *in,
                                        fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t const *t_rules);
 
 ssize_t        xlat_tokenize_argv(TALLOC_CTX *ctx, xlat_exp_head_t **head, fr_sbuff_t *in,
                                   fr_sbuff_parse_rules_t const *p_rules, tmpl_attr_rules_t const *t_rules);
 
-ssize_t                xlat_tokenize(TALLOC_CTX *ctx, xlat_exp_head_t **head, xlat_flags_t *flags, fr_sbuff_t *in,
+ssize_t                xlat_tokenize(TALLOC_CTX *ctx, xlat_exp_head_t **head, fr_sbuff_t *in,
                              fr_sbuff_parse_rules_t const *p_rules, tmpl_attr_rules_t const *t_rules);
 
 ssize_t                xlat_print(fr_sbuff_t *in, xlat_exp_head_t const *node, fr_sbuff_escape_rules_t const *e_rules);
index f24ffd8b946fce7db4b4de477b9ac0953f7d7a10..b02d88e7f778f28e16d8d8455df6fe87d121ed3e 100644 (file)
@@ -1586,7 +1586,7 @@ static xlat_action_t xlat_func_eval(TALLOC_CTX *ctx, fr_dcursor_t *out,
         *      Parse the input as a literal expansion
         */
        if (xlat_tokenize_ephemeral(rctx,
-                                   &rctx->ex, unlang_interpret_event_list(request), NULL,
+                                   &rctx->ex, unlang_interpret_event_list(request),
                                    &FR_SBUFF_IN(arg->vb_strvalue, arg->vb_length),
                                    &(fr_sbuff_parse_rules_t){
                                        .escapes = &escape_rules
index fc5b9de11ebce14933b0d4593d53010dcedd4aad..150893145765269affa049e54cc5da95ce081ad9 100644 (file)
@@ -1529,7 +1529,7 @@ ssize_t _xlat_eval(TALLOC_CTX *ctx, char **out, size_t outlen, request_t *reques
        /*
         *      Give better errors than the old code.
         */
-       len = xlat_tokenize_ephemeral(ctx, &head, unlang_interpret_event_list(request), NULL,
+       len = xlat_tokenize_ephemeral(ctx, &head, unlang_interpret_event_list(request),
                                      &FR_SBUFF_IN(fmt, strlen(fmt)),
                                      NULL,
                                      &(tmpl_rules_t){
index 55f503de39760ad4657ed8856e5f98f8c5b642f1..e7fc2e28ebf411307151111127463e4a76e7826a 100644 (file)
@@ -1373,7 +1373,7 @@ static const fr_sbuff_term_t operator_terms = FR_SBUFF_TERMS(
        L("<"),
 );
 
-ssize_t xlat_tokenize_expression(TALLOC_CTX *ctx, xlat_exp_head_t **out, xlat_flags_t *flags, fr_sbuff_t *in,
+ssize_t xlat_tokenize_expression(TALLOC_CTX *ctx, xlat_exp_head_t **out, fr_sbuff_t *in,
                                 fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t const *t_rules)
 {
        ssize_t slen;
@@ -1430,8 +1430,6 @@ ssize_t xlat_tokenize_expression(TALLOC_CTX *ctx, xlat_exp_head_t **out, xlat_fl
        }
 
        *out = head;
-       if (flags) xlat_flags_merge(flags, &head->flags);
-
        return slen;
 }
 
@@ -1443,7 +1441,6 @@ ssize_t xlat_tokenize_expression(TALLOC_CTX *ctx, xlat_exp_head_t **out, xlat_fl
  * @param[in] ctx      to allocate dynamic buffers in.
  * @param[out] out     the head of the xlat list / tree structure.
  * @param[in] el       for registering any I/O handlers.
- * @param[out] flags   indicating the state of the ephemeral tree.
  * @param[in] in       the format string to expand.
  * @param[in] p_rules  from the encompassing grammar.
  * @param[in] t_rules  controlling how attribute references are parsed.
@@ -1454,8 +1451,7 @@ ssize_t xlat_tokenize_expression(TALLOC_CTX *ctx, xlat_exp_head_t **out, xlat_fl
  *     - <0 the negative offset of the parse failure.
  */
 ssize_t xlat_tokenize_ephemeral_expression(TALLOC_CTX *ctx, xlat_exp_head_t **out,
-                                          fr_event_list_t *el,
-                                          xlat_flags_t *flags, fr_sbuff_t *in,
+                                          fr_event_list_t *el, fr_sbuff_t *in,
                                           fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t const *t_rules)
 {
        ssize_t slen;
@@ -1515,6 +1511,5 @@ ssize_t xlat_tokenize_ephemeral_expression(TALLOC_CTX *ctx, xlat_exp_head_t **ou
        }
 
        *out = head;
-       if (flags) xlat_flags_merge(flags, &head->flags);
        return slen;
 }
index 75ad882d7638933f17342aa75ee2ef4ad7323a89..f65064bc3381fac29dd3086438da915cb018b363 100644 (file)
@@ -1305,7 +1305,6 @@ ssize_t xlat_print(fr_sbuff_t *out, xlat_exp_head_t const *head, fr_sbuff_escape
  * @param[in] ctx      to allocate dynamic buffers in.
  * @param[out] out     the head of the xlat list / tree structure.
  * @param[in] el       for registering any I/O handlers.
- * @param[out] flags   indicating the state of the ephemeral tree.
  * @param[in] in       the format string to expand.
  * @param[in] p_rules  from the encompassing grammar.
  * @param[in] t_rules  controlling how attribute references are parsed.
@@ -1316,8 +1315,7 @@ ssize_t xlat_print(fr_sbuff_t *out, xlat_exp_head_t const *head, fr_sbuff_escape
  *     - <0 the negative offset of the parse failure.
  */
 ssize_t xlat_tokenize_ephemeral(TALLOC_CTX *ctx, xlat_exp_head_t **out,
-                               fr_event_list_t *el,
-                               xlat_flags_t *flags, fr_sbuff_t *in,
+                               fr_event_list_t *el, fr_sbuff_t *in,
                                fr_sbuff_parse_rules_t const *p_rules, tmpl_rules_t const *t_rules)
 {
        fr_sbuff_t      our_in = FR_SBUFF(in);
@@ -1342,7 +1340,6 @@ ssize_t xlat_tokenize_ephemeral(TALLOC_CTX *ctx, xlat_exp_head_t **out,
         */
        if (!head->next) {
                *out = head;
-               if (flags) xlat_flags_merge(flags, &head->flags);
                return 0;
        }
 
@@ -1356,7 +1353,6 @@ ssize_t xlat_tokenize_ephemeral(TALLOC_CTX *ctx, xlat_exp_head_t **out,
        }
 
        *out = head;
-       if (flags) xlat_flags_merge(flags, &head->flags);
 
        return fr_sbuff_set(in, &our_in);
 }
@@ -1534,7 +1530,6 @@ ssize_t xlat_tokenize_argv(TALLOC_CTX *ctx, xlat_exp_head_t **out, fr_sbuff_t *i
  *
  * @param[in] ctx      to allocate dynamic buffers in.
  * @param[out] out     the head of the xlat list / tree structure.
- * @param[in,out] flags        that control evaluation and parsing.
  * @param[in] in       the format string to expand.
  * @param[in] p_rules  controlling how the string containing the xlat
  *                     expansions should be parsed.
@@ -1545,7 +1540,7 @@ ssize_t xlat_tokenize_argv(TALLOC_CTX *ctx, xlat_exp_head_t **out, fr_sbuff_t *i
  *     - 0 and *head != NULL - Zero length expansion
  *     - < 0 the negative offset of the parse failure.
  */
-ssize_t xlat_tokenize(TALLOC_CTX *ctx, xlat_exp_head_t **out, xlat_flags_t *flags, fr_sbuff_t *in,
+ssize_t xlat_tokenize(TALLOC_CTX *ctx, xlat_exp_head_t **out, fr_sbuff_t *in,
                      fr_sbuff_parse_rules_t const *p_rules, tmpl_attr_rules_t const *t_rules)
 {
        fr_sbuff_t      our_in = FR_SBUFF(in);
@@ -1571,7 +1566,6 @@ ssize_t xlat_tokenize(TALLOC_CTX *ctx, xlat_exp_head_t **out, xlat_flags_t *flag
        }
 
        *out = head;
-       if (flags) xlat_flags_merge(flags, &head->flags);
 
        return fr_sbuff_set(in, &our_in);
 }