From: Alan T. DeKok Date: Thu, 12 May 2022 01:58:40 +0000 (-0400) Subject: remove flags from xlat tokenize functions. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c072ae4ecc34632129941dfa8eefc4b1b2b06ba9;p=thirdparty%2Ffreeradius-server.git remove flags from xlat tokenize functions. The flags are now only used for xlat registrations. --- diff --git a/src/bin/unit_test_attribute.c b/src/bin/unit_test_attribute.c index d3c02acd14d..dc05a05a37c 100644 --- a/src/bin/unit_test_attribute.c +++ b/src/bin/unit_test_attribute.c @@ -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 ? diff --git a/src/bin/unit_test_module.c b/src/bin/unit_test_module.c index adee93ce965..b7963c52c7f 100644 --- a/src/bin/unit_test_module.c +++ b/src/bin/unit_test_module.c @@ -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) { diff --git a/src/lib/server/cf_parse.c b/src/lib/server/cf_parse.c index c3471472bbf..d793042edff 100644 --- a/src/lib/server/cf_parse.c +++ b/src/lib/server/cf_parse.c @@ -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, diff --git a/src/lib/server/tmpl_tokenize.c b/src/lib/server/tmpl_tokenize.c index 5f90726c008..6fb986536d3 100644 --- a/src/lib/server/tmpl_tokenize.c +++ b/src/lib/server/tmpl_tokenize.c @@ -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; /* diff --git a/src/lib/unlang/xlat.h b/src/lib/unlang/xlat.h index 1927959e97b..45e198de42c 100644 --- a/src/lib/unlang/xlat.h +++ b/src/lib/unlang/xlat.h @@ -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); diff --git a/src/lib/unlang/xlat_builtin.c b/src/lib/unlang/xlat_builtin.c index f24ffd8b946..b02d88e7f77 100644 --- a/src/lib/unlang/xlat_builtin.c +++ b/src/lib/unlang/xlat_builtin.c @@ -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 diff --git a/src/lib/unlang/xlat_eval.c b/src/lib/unlang/xlat_eval.c index fc5b9de11eb..15089314576 100644 --- a/src/lib/unlang/xlat_eval.c +++ b/src/lib/unlang/xlat_eval.c @@ -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){ diff --git a/src/lib/unlang/xlat_expr.c b/src/lib/unlang/xlat_expr.c index 55f503de397..e7fc2e28ebf 100644 --- a/src/lib/unlang/xlat_expr.c +++ b/src/lib/unlang/xlat_expr.c @@ -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; } diff --git a/src/lib/unlang/xlat_tokenize.c b/src/lib/unlang/xlat_tokenize.c index 75ad882d763..f65064bc338 100644 --- a/src/lib/unlang/xlat_tokenize.c +++ b/src/lib/unlang/xlat_tokenize.c @@ -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); }