From: Arran Cudbard-Bell Date: Wed, 29 Mar 2023 23:20:28 +0000 (-0600) Subject: xlat: Rename xlat_register to xlat_func and give all functions a common prefix X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=62ce5f0ee9e95c614318e458f98aff7bf90c6072;p=thirdparty%2Ffreeradius-server.git xlat: Rename xlat_register to xlat_func and give all functions a common prefix --- diff --git a/src/bin/unit_test_attribute.c b/src/bin/unit_test_attribute.c index e85b7a7304..22ffc410da 100644 --- a/src/bin/unit_test_attribute.c +++ b/src/bin/unit_test_attribute.c @@ -42,7 +42,7 @@ typedef struct request_s request_t; #endif #include #include -#include +#include #include #include #include @@ -3851,7 +3851,7 @@ int main(int argc, char *argv[]) unlang_thread_instantiate(thread_ctx); - if (!xlat_register(NULL, "test", xlat_test, FR_TYPE_NULL)) { + if (!xlat_func_register(NULL, "test", xlat_test, FR_TYPE_NULL)) { ERROR("Failed registering xlat"); EXIT_WITH_FAILURE; } diff --git a/src/lib/eap_aka_sim/base.h b/src/lib/eap_aka_sim/base.h index b8295be7f0..8818175d65 100644 --- a/src/lib/eap_aka_sim/base.h +++ b/src/lib/eap_aka_sim/base.h @@ -346,5 +346,5 @@ void fr_aka_sim_fips186_2prf(uint8_t out[static 160], uint8_t mk[static 20]); /* * xlat.c */ -void fr_aka_sim_xlat_register(void); -void fr_aka_sim_xlat_unregister(void); +void fr_aka_sim_xlat_func_register(void); +void fr_aka_sim_xlat_func_unregister(void); diff --git a/src/lib/eap_aka_sim/xlat.c b/src/lib/eap_aka_sim/xlat.c index 9597a1a510..30ecdf2da7 100644 --- a/src/lib/eap_aka_sim/xlat.c +++ b/src/lib/eap_aka_sim/xlat.c @@ -25,7 +25,7 @@ */ #include -#include +#include #include "base.h" #include "attrs.h" @@ -496,7 +496,7 @@ static xlat_action_t aka_sim_3gpp_temporary_id_encrypt_xlat(TALLOC_CTX *ctx, fr_ return XLAT_ACTION_DONE; } -void fr_aka_sim_xlat_register(void) +void fr_aka_sim_xlat_func_register(void) { xlat_t *xlat; @@ -505,30 +505,30 @@ void fr_aka_sim_xlat_register(void) return; } - xlat = xlat_register(NULL, "aka_sim_id_method", aka_sim_xlat_id_method_xlat, FR_TYPE_STRING); + xlat = xlat_func_register(NULL, "aka_sim_id_method", aka_sim_xlat_id_method_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, aka_sim_xlat_id_method_xlat_args); - xlat = xlat_register(NULL, "aka_sim_id_type", aka_sim_xlat_id_type_xlat, FR_TYPE_STRING); + xlat = xlat_func_register(NULL, "aka_sim_id_type", aka_sim_xlat_id_type_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, aka_sim_xlat_id_type_xlat_args); - xlat = xlat_register(NULL, "3gpp_temporary_id_key_index", aka_sim_id_3gpp_temporary_id_key_index_xlat, FR_TYPE_UINT8); + xlat = xlat_func_register(NULL, "3gpp_temporary_id_key_index", aka_sim_id_3gpp_temporary_id_key_index_xlat, FR_TYPE_UINT8); xlat_func_args_set(xlat, aka_sim_id_3gpp_temporary_id_key_index_xlat_args); - xlat = xlat_register(NULL, "3gpp_temporary_id_decrypt", aka_sim_3gpp_temporary_id_decrypt_xlat, FR_TYPE_STRING); + xlat = xlat_func_register(NULL, "3gpp_temporary_id_decrypt", aka_sim_3gpp_temporary_id_decrypt_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, aka_sim_3gpp_temporary_id_decrypt_xlat_args); - xlat = xlat_register(NULL, "3gpp_temporary_id_encrypt", aka_sim_3gpp_temporary_id_encrypt_xlat, FR_TYPE_STRING); + xlat = xlat_func_register(NULL, "3gpp_temporary_id_encrypt", aka_sim_3gpp_temporary_id_encrypt_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, aka_sim_3gpp_temporary_id_encrypt_xlat_args); aka_sim_xlat_refs = 1; } -void fr_aka_sim_xlat_unregister(void) +void fr_aka_sim_xlat_func_unregister(void) { if (aka_sim_xlat_refs > 1) { aka_sim_xlat_refs--; return; } - xlat_unregister("aka_sim_id_method"); - xlat_unregister("aka_sim_id_type"); - xlat_unregister("3gpp_pseudonym_key_index"); - xlat_unregister("3gpp_pseudonym_decrypt"); - xlat_unregister("3gpp_pseudonym_encrypt"); + xlat_func_unregister("aka_sim_id_method"); + xlat_func_unregister("aka_sim_id_type"); + xlat_func_unregister("3gpp_pseudonym_key_index"); + xlat_func_unregister("3gpp_pseudonym_decrypt"); + xlat_func_unregister("3gpp_pseudonym_encrypt"); aka_sim_xlat_refs = 0; } diff --git a/src/lib/server/main_config.c b/src/lib/server/main_config.c index 8ce5d90f3a..bd08a747f7 100644 --- a/src/lib/server/main_config.c +++ b/src/lib/server/main_config.c @@ -45,7 +45,7 @@ RCSID("$Id$") #include #include -#include +#include #include #include @@ -1020,9 +1020,10 @@ int main_config_init(main_config_t *config) xlat_t *xlat; /* - * Initialize the xlats before we load the configuration files, so that we can later call xlat_register(). + * Initialize the xlats before we load the configuration files, + * so that we can later call xlat_func_register(). */ - xlat_register_init(); + xlat_func_init(); if (stat(config->raddb_dir, &statbuf) < 0) { ERROR("Error checking raddb_dir \"%s\": %s", config->raddb_dir, fr_syserror(errno)); @@ -1367,9 +1368,9 @@ do {\ /* * Register the %(config:section.subsection) xlat function. */ - xlat = xlat_register(NULL, "config", xlat_config, FR_TYPE_STRING); + xlat = xlat_func_register(NULL, "config", xlat_config, FR_TYPE_STRING); xlat_func_args_set(xlat, xlat_config_args); - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); /* * Ensure cwd is inside the chroot. diff --git a/src/lib/server/module.c b/src/lib/server/module.c index 4551f646f6..ccf95e7106 100644 --- a/src/lib/server/module.c +++ b/src/lib/server/module.c @@ -35,7 +35,7 @@ RCSID("$Id$") #include #include #include -#include +#include /** Heap of all lists/modules used to get a common index with module_thread_inst_list * @@ -886,12 +886,12 @@ static int _module_instance_free(module_instance_t *mi) * Remove all xlat's registered to module instance. */ if (mi->dl_inst && mi->dl_inst->data) { - xlat_unregister(mi->name); + xlat_func_unregister(mi->name); /* * Remove any registered paircmps. */ paircmp_unregister_instance(mi->dl_inst->data); - xlat_unregister_module(mi->dl_inst); + xlat_func_unregister_module(mi->dl_inst); } /* diff --git a/src/lib/server/module_rlm.c b/src/lib/server/module_rlm.c index be8ee64af3..3b8807fb6b 100644 --- a/src/lib/server/module_rlm.c +++ b/src/lib/server/module_rlm.c @@ -35,7 +35,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include /** Lookup virtual module by name diff --git a/src/lib/unlang/all.mk b/src/lib/unlang/all.mk index 0c54827602..460c3dc32f 100644 --- a/src/lib/unlang/all.mk +++ b/src/lib/unlang/all.mk @@ -30,11 +30,11 @@ SOURCES := base.c \ xlat_builtin.c \ xlat_eval.c \ xlat_expr.c \ + xlat_func.c \ xlat_inst.c \ xlat_pair.c \ xlat_purify.c \ xlat_redundant.c \ - xlat_register.c \ xlat_tokenize.c HEADERS := $(subst src/lib/,,$(wildcard src/lib/unlang/*.h)) diff --git a/src/lib/unlang/foreach.c b/src/lib/unlang/foreach.c index 1de5aabf68..39ad19be8a 100644 --- a/src/lib/unlang/foreach.c +++ b/src/lib/unlang/foreach.c @@ -25,7 +25,7 @@ RCSID("$Id$") #include -#include +#include #include "foreach_priv.h" #include "return_priv.h" @@ -275,7 +275,7 @@ void unlang_foreach_init(void) for (i = 0; i < NUM_ELEMENTS(xlat_foreach_names); i++) { xlat_t *x; - x = xlat_register(NULL, xlat_foreach_names[i], + x = xlat_func_register(NULL, xlat_foreach_names[i], unlang_foreach_xlat, FR_TYPE_VOID); fr_assert(x); x->uctx = &xlat_foreach_inst[i]; @@ -301,6 +301,6 @@ void unlang_foreach_free(void) size_t i; for (i = 0; i < NUM_ELEMENTS(xlat_foreach_names); i++) { - xlat_unregister(xlat_foreach_names[i]); + xlat_func_unregister(xlat_foreach_names[i]); } } diff --git a/src/lib/unlang/interpret.c b/src/lib/unlang/interpret.c index 93a0079cf5..9af403d6cd 100644 --- a/src/lib/unlang/interpret.c +++ b/src/lib/unlang/interpret.c @@ -26,7 +26,7 @@ RCSID("$Id$") #include #include -#include +#include #include "interpret_priv.h" #include "module_priv.h" @@ -1129,7 +1129,7 @@ void unlang_interpret_signal(request_t *request, fr_state_signal_t action) switch (action) { case FR_SIGNAL_CANCEL: /* - * Detach the request from the parent to cleanup + * Detach the request from the parent to cleanup * any cross-request pointers. This is a noop * if the request is not detachable. */ @@ -1648,9 +1648,9 @@ void unlang_interpret_init_global(void) * Should be void, but someone decided not to register multiple xlats * breaking the convention we use everywhere else in the server... */ - xlat = xlat_register(NULL, "interpreter", unlang_interpret_xlat, FR_TYPE_VOID); + xlat = xlat_func_register(NULL, "interpreter", unlang_interpret_xlat, FR_TYPE_VOID); xlat_func_args_set(xlat, unlang_interpret_xlat_args); - xlat = xlat_register(NULL, "cancel", unlang_cancel_xlat, FR_TYPE_VOID); + xlat = xlat_func_register(NULL, "cancel", unlang_cancel_xlat, FR_TYPE_VOID); xlat_func_args_set(xlat, unlang_cancel_xlat_args); } diff --git a/src/lib/unlang/xlat.h b/src/lib/unlang/xlat.h index 0a6eeb10d4..7b15c691c9 100644 --- a/src/lib/unlang/xlat.h +++ b/src/lib/unlang/xlat.h @@ -114,13 +114,6 @@ typedef struct { bool constant; //!< xlat is just tmpl_attr_tail_data, or XLAT_BOX } xlat_flags_t; -/* - * Simplify many use-cases - * - * We can't set "needs_resolving" here, and async functions can't be pure. - */ -#define XLAT_FLAG_PURE &(xlat_flags_t) { .pure = true, } - extern fr_table_num_sorted_t const xlat_action_table[]; extern size_t xlat_action_table_len; diff --git a/src/lib/unlang/xlat_builtin.c b/src/lib/unlang/xlat_builtin.c index 2bccd8b62e..ff048675e4 100644 --- a/src/lib/unlang/xlat_builtin.c +++ b/src/lib/unlang/xlat_builtin.c @@ -33,7 +33,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include #include @@ -3191,11 +3191,11 @@ static int xlat_protocol_register(fr_dict_t const *dict) if (tp_decode) { snprintf(buffer, sizeof(buffer), "decode.%s", name); - xlat = xlat_register(NULL, buffer, protocol_decode_xlat, FR_TYPE_UINT32); + xlat = xlat_func_register(NULL, buffer, protocol_decode_xlat, FR_TYPE_UINT32); if (!xlat) return -1; xlat_func_args_set(xlat, protocol_decode_xlat_args); /* coverity[suspicious_sizeof] */ - xlat_async_instantiate_set(xlat, protocol_xlat_instantiate, fr_test_point_pair_decode_t *, NULL, tp_decode); + xlat_func_async_instantiate_set(xlat, protocol_xlat_instantiate, fr_test_point_pair_decode_t *, NULL, tp_decode); xlat_internal(xlat); } @@ -3207,11 +3207,11 @@ static int xlat_protocol_register(fr_dict_t const *dict) if (tp_encode) { snprintf(buffer, sizeof(buffer), "encode.%s", name); - xlat = xlat_register(NULL, buffer, protocol_encode_xlat, FR_TYPE_OCTETS); + xlat = xlat_func_register(NULL, buffer, protocol_encode_xlat, FR_TYPE_OCTETS); if (!xlat) return -1; xlat_func_args_set(xlat, protocol_encode_xlat_args); /* coverity[suspicious_sizeof] */ - xlat_async_instantiate_set(xlat, protocol_xlat_instantiate, fr_test_point_pair_encode_t *, NULL, tp_encode); + xlat_func_async_instantiate_set(xlat, protocol_xlat_instantiate, fr_test_point_pair_encode_t *, NULL, tp_encode); xlat_internal(xlat); } @@ -3252,7 +3252,7 @@ int xlat_init(void) { xlat_t *xlat; - if (xlat_register_init() < 0) return -1; + if (xlat_func_init() < 0) return -1; /* * Lookup attributes used by virtual xlat expansions. @@ -3274,9 +3274,9 @@ int xlat_init(void) */ #define XLAT_REGISTER_ARGS(_xlat, _func, _return_type, _args) \ do { \ - if (!(xlat = xlat_register(NULL, _xlat, _func, _return_type))) return -1; \ + if (!(xlat = xlat_func_register(NULL, _xlat, _func, _return_type))) return -1; \ xlat_func_args_set(xlat, _args); \ - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); \ + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); \ xlat_internal(xlat); \ } while (0) @@ -3298,7 +3298,7 @@ do { \ #undef XLAT_REGISTER_ARGS #define XLAT_REGISTER_ARGS(_xlat, _func, _return_type, _args) \ do { \ - if (!(xlat = xlat_register(NULL, _xlat, _func, _return_type))) return -1; \ + if (!(xlat = xlat_func_register(NULL, _xlat, _func, _return_type))) return -1; \ xlat_func_args_set(xlat, _args); \ xlat_internal(xlat); \ } while (0) @@ -3317,9 +3317,9 @@ do { \ XLAT_REGISTER_ARGS("flatten", xlat_func_flatten, FR_TYPE_NULL, xlat_func_debug_attr_args); /* takes an attribute reference */ XLAT_REGISTER_ARGS("unflatten", xlat_func_unflatten, FR_TYPE_NULL, xlat_func_debug_attr_args); /* takes an attribute reference */ - xlat = xlat_register(NULL, "untaint", xlat_func_untaint, FR_TYPE_VOID); + xlat = xlat_func_register(NULL, "untaint", xlat_func_untaint, FR_TYPE_VOID); xlat_internal(xlat); - xlat = xlat_register(NULL, "taint", xlat_func_taint, FR_TYPE_VOID); + xlat = xlat_func_register(NULL, "taint", xlat_func_taint, FR_TYPE_VOID); xlat_internal(xlat); /* @@ -3327,9 +3327,9 @@ do { \ */ #define XLAT_REGISTER_MONO(_xlat, _func, _return_type, _arg) \ do { \ - if (!(xlat = xlat_register(NULL, _xlat, _func, _return_type))) return -1; \ + if (!(xlat = xlat_func_register(NULL, _xlat, _func, _return_type))) return -1; \ xlat_func_mono_set(xlat, _arg); \ - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); \ + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); \ xlat_internal(xlat); \ } while (0) @@ -3342,7 +3342,7 @@ do { \ XLAT_REGISTER_MONO("md5", xlat_func_md5, FR_TYPE_OCTETS, xlat_func_md5_arg); XLAT_REGISTER_MONO("pack", xlat_func_pack, FR_TYPE_OCTETS, xlat_func_pack_arg); #if defined(HAVE_REGEX_PCRE) || defined(HAVE_REGEX_PCRE2) - xlat = xlat_register(NULL, "regex", xlat_func_regex, FR_TYPE_STRING); + xlat = xlat_func_register(NULL, "regex", xlat_func_regex, FR_TYPE_STRING); xlat_internal(xlat); #endif XLAT_REGISTER_MONO("sha1", xlat_func_sha1, FR_TYPE_OCTETS, xlat_func_sha_arg); @@ -3376,7 +3376,7 @@ do { \ #undef XLAT_REGISTER_MONO #define XLAT_REGISTER_MONO(_xlat, _func, _return_type, _arg) \ do { \ - if (!(xlat = xlat_register(NULL, _xlat, _func, _return_type))) return -1; \ + if (!(xlat = xlat_func_register(NULL, _xlat, _func, _return_type))) return -1; \ xlat_func_mono_set(xlat, _arg); \ xlat_internal(xlat); \ } while (0) @@ -3384,7 +3384,7 @@ do { \ XLAT_REGISTER_MONO("rand", xlat_func_rand, FR_TYPE_UINT64, xlat_func_rand_arg); XLAT_REGISTER_MONO("randstr", xlat_func_randstr, FR_TYPE_STRING, xlat_func_randstr_arg); - xlat = xlat_register(NULL, "module", xlat_func_module, FR_TYPE_STRING); + xlat = xlat_func_register(NULL, "module", xlat_func_module, FR_TYPE_STRING); xlat_internal(xlat); return xlat_register_expressions(); @@ -3395,7 +3395,7 @@ do { \ */ void xlat_free(void) { - xlat_register_free(); + xlat_func_free(); xlat_eval_free(); } diff --git a/src/lib/unlang/xlat_expr.c b/src/lib/unlang/xlat_expr.c index 6ae560812a..e5d1ecdfdf 100644 --- a/src/lib/unlang/xlat_expr.c +++ b/src/lib/unlang/xlat_expr.c @@ -30,7 +30,7 @@ RCSID("$Id$") #include #include #include -#include +#include #undef XLAT_DEBUG #ifdef DEBUG_XLAT @@ -1627,21 +1627,21 @@ static xlat_action_t xlat_func_exists(TALLOC_CTX *ctx, fr_dcursor_t *out, #undef XLAT_REGISTER_BINARY_OP #define XLAT_REGISTER_BINARY_OP(_op, _name) \ do { \ - if (!(xlat = xlat_register(NULL, "op_" STRINGIFY(_name), xlat_func_op_ ## _name, FR_TYPE_VOID))) return -1; \ + if (!(xlat = xlat_func_register(NULL, "op_" STRINGIFY(_name), xlat_func_op_ ## _name, FR_TYPE_VOID))) return -1; \ xlat_func_args_set(xlat, binary_op_xlat_args); \ - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); \ + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); \ xlat_internal(xlat); \ xlat_print_set(xlat, xlat_expr_print_binary); \ - xlat_async_instantiate_set(xlat, xlat_function_args_to_tmpl, NULL, NULL, NULL); \ + xlat_func_async_instantiate_set(xlat, xlat_function_args_to_tmpl, NULL, NULL, NULL); \ xlat->token = _op; \ } while (0) #undef XLAT_REGISTER_BINARY_CMP #define XLAT_REGISTER_BINARY_CMP(_op, _name) \ do { \ - if (!(xlat = xlat_register(NULL, "cmp_" STRINGIFY(_name), xlat_func_cmp_ ## _name, FR_TYPE_VOID))) return -1; \ + if (!(xlat = xlat_func_register(NULL, "cmp_" STRINGIFY(_name), xlat_func_cmp_ ## _name, FR_TYPE_VOID))) return -1; \ xlat_func_args_set(xlat, binary_op_xlat_args); \ - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); \ + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); \ xlat_internal(xlat); \ xlat_print_set(xlat, xlat_expr_print_binary); \ xlat_resolve_set(xlat, xlat_expr_resolve_binary); \ @@ -1651,9 +1651,9 @@ do { \ #undef XLAT_REGISTER_NARY_OP #define XLAT_REGISTER_NARY_OP(_op, _name, _func_name) \ do { \ - if (!(xlat = xlat_register(NULL, STRINGIFY(_name), xlat_func_ ## _func_name, FR_TYPE_VOID))) return -1; \ - xlat_async_instantiate_set(xlat, xlat_instantiate_ ## _func_name, xlat_ ## _func_name ## _inst_t, NULL, NULL); \ - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); \ + if (!(xlat = xlat_func_register(NULL, STRINGIFY(_name), xlat_func_ ## _func_name, FR_TYPE_VOID))) return -1; \ + xlat_func_async_instantiate_set(xlat, xlat_instantiate_ ## _func_name, xlat_ ## _func_name ## _inst_t, NULL, NULL); \ + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); \ xlat_internal(xlat); \ xlat_print_set(xlat, xlat_expr_print_ ## _func_name); \ xlat_purify_set(xlat, xlat_expr_logical_purify); \ @@ -1663,10 +1663,10 @@ do { \ #undef XLAT_REGISTER_REGEX_OP #define XLAT_REGISTER_REGEX_OP(_op, _name) \ do { \ - if (!(xlat = xlat_register(NULL, STRINGIFY(_name), xlat_func_ ## _name, FR_TYPE_VOID))) return -1; \ + if (!(xlat = xlat_func_register(NULL, STRINGIFY(_name), xlat_func_ ## _name, FR_TYPE_VOID))) return -1; \ xlat_func_args_set(xlat, regex_op_xlat_args); \ - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); \ - xlat_async_instantiate_set(xlat, xlat_instantiate_regex, xlat_regex_inst_t, NULL, NULL); \ + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); \ + xlat_func_async_instantiate_set(xlat, xlat_instantiate_regex, xlat_regex_inst_t, NULL, NULL); \ xlat_print_set(xlat, xlat_expr_print_regex); \ xlat_internal(xlat); \ xlat->token = _op; \ @@ -1674,16 +1674,16 @@ do { \ #define XLAT_REGISTER_MONO(_xlat, _func, _arg) \ do { \ - if (!(xlat = xlat_register(NULL, _xlat, _func, FR_TYPE_VOID))) return -1; \ + if (!(xlat = xlat_func_register(NULL, _xlat, _func, FR_TYPE_VOID))) return -1; \ xlat_func_mono_set(xlat, _arg); \ xlat_internal(xlat); \ } while (0) #define XLAT_REGISTER_UNARY(_op, _xlat, _func) \ do { \ - if (!(xlat = xlat_register(NULL, _xlat, _func, FR_TYPE_VOID))) return -1; \ + if (!(xlat = xlat_func_register(NULL, _xlat, _func, FR_TYPE_VOID))) return -1; \ xlat_func_args_set(xlat, unary_op_xlat_args); \ - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); \ + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); \ xlat_internal(xlat); \ xlat_print_set(xlat, xlat_expr_print_unary); \ xlat->token = _op; \ @@ -1727,7 +1727,7 @@ int xlat_register_expressions(void) XLAT_REGISTER_MONO("rcode", xlat_func_rcode, xlat_func_rcode_arg); XLAT_REGISTER_MONO("exists", xlat_func_exists, xlat_func_exists_arg); - xlat_async_instantiate_set(xlat, xlat_instantiate_exists, xlat_exists_inst_t, NULL, NULL); + xlat_func_async_instantiate_set(xlat, xlat_instantiate_exists, xlat_exists_inst_t, NULL, NULL); xlat_print_set(xlat, xlat_expr_print_exists); /* @@ -1742,7 +1742,7 @@ int xlat_register_expressions(void) /* * Callback wrapper around old paircmp() API. */ - if (!(xlat = xlat_register(NULL, "paircmp", xlat_paircmp_func, FR_TYPE_VOID))) return -1; /* never pure! */ + if (!(xlat = xlat_func_register(NULL, "paircmp", xlat_paircmp_func, FR_TYPE_VOID))) return -1; /* never pure! */ xlat_func_args_set(xlat, xlat_paircmp_xlat_args); xlat_internal(xlat); diff --git a/src/lib/unlang/xlat_register.c b/src/lib/unlang/xlat_func.c similarity index 93% rename from src/lib/unlang/xlat_register.c rename to src/lib/unlang/xlat_func.c index 92bc251347..38a5fadba3 100644 --- a/src/lib/unlang/xlat_register.c +++ b/src/lib/unlang/xlat_func.c @@ -27,7 +27,7 @@ RCSID("$Id$") #include #include -#include +#include static fr_rb_tree_t *xlat_root = NULL; @@ -168,7 +168,7 @@ static int xlat_arg_cmp_list_no_escape(xlat_arg_parser_t const a[], xlat_arg_par * - A handle for the newly registered xlat function on success. * - NULL on failure. */ -xlat_t *xlat_register_module(TALLOC_CTX *ctx, module_inst_ctx_t const *mctx, +xlat_t *xlat_func_register_module(TALLOC_CTX *ctx, module_inst_ctx_t const *mctx, char const *name, xlat_func_t func, fr_type_t return_type) { xlat_t *c; @@ -236,9 +236,9 @@ xlat_t *xlat_register_module(TALLOC_CTX *ctx, module_inst_ctx_t const *mctx, * - A handle for the newly registered xlat function on success. * - NULL on failure. */ -xlat_t *xlat_register(TALLOC_CTX *ctx, char const *name, xlat_func_t func, fr_type_t return_type) +xlat_t *xlat_func_register(TALLOC_CTX *ctx, char const *name, xlat_func_t func, fr_type_t return_type) { - return xlat_register_module(ctx, NULL, name, func, return_type); + return xlat_func_register_module(ctx, NULL, name, func, return_type); } /** Verify xlat arg specifications are valid @@ -339,15 +339,9 @@ int xlat_func_mono_set(xlat_t *x, xlat_arg_parser_t const args[]) * @param[in] x xlat to set flags for. * @param[in] flags to set. */ -void xlat_func_flags_set(xlat_t *x, xlat_flags_t const *flags) +void xlat_func_flags_set(xlat_t *x, xlat_func_flags_t flags) { - /* - * If the function is async, it can't be pure. But - * non-pure functions don't need to be async. - */ - fr_assert(!flags->needs_resolving); - - x->flags = *flags; + x->flags.pure = flags & XLAT_FUNC_FLAG_PURE; } /** Set global instantiation/detach callbacks @@ -362,7 +356,7 @@ void xlat_func_flags_set(xlat_t *x, xlat_flags_t const *flags) * @param[in] detach Called when an xlat_exp_t is freed. * @param[in] uctx Passed to the instantiation function. */ -void _xlat_async_instantiate_set(xlat_t const *xlat, +void _xlat_func_async_instantiate_set(xlat_t const *xlat, xlat_instantiate_t instantiate, char const *inst_type, size_t inst_size, xlat_detach_t detach, void *uctx) @@ -390,7 +384,7 @@ void _xlat_async_instantiate_set(xlat_t const *xlat, * @param[in] thread_detach Called when the thread is freed. * @param[in] uctx Passed to the thread instantiate function. */ -void _xlat_async_thread_instantiate_set(xlat_t const *xlat, +void _xlat_func_async_thread_instantiate_set(xlat_t const *xlat, xlat_thread_instantiate_t thread_instantiate, char const *thread_inst_type, size_t thread_inst_size, xlat_thread_detach_t thread_detach, @@ -420,7 +414,7 @@ void _xlat_async_thread_instantiate_set(xlat_t const *xlat, * * @param[in] name xlat to unregister. */ -void xlat_unregister(char const *name) +void xlat_func_unregister(char const *name) { xlat_t *c; @@ -434,7 +428,7 @@ void xlat_unregister(char const *name) talloc_free(c); /* Should also remove from tree */ } -void xlat_unregister_module(dl_module_inst_t const *inst) +void xlat_func_unregister_module(dl_module_inst_t const *inst) { xlat_t *c; fr_rb_iter_inorder_t iter; @@ -451,7 +445,7 @@ void xlat_unregister_module(dl_module_inst_t const *inst) } } -int xlat_register_init(void) +int xlat_func_init(void) { if (xlat_root) return 0; @@ -467,7 +461,7 @@ int xlat_register_init(void) return 0; } -void xlat_register_free(void) +void xlat_func_free(void) { fr_rb_tree_t *xr = xlat_root; /* Make sure the tree can't be freed multiple times */ diff --git a/src/lib/unlang/xlat_register.h b/src/lib/unlang/xlat_func.h similarity index 53% rename from src/lib/unlang/xlat_register.h rename to src/lib/unlang/xlat_func.h index 794e2a4b6b..ea61661276 100644 --- a/src/lib/unlang/xlat_register.h +++ b/src/lib/unlang/xlat_func.h @@ -18,7 +18,7 @@ /** * $Id$ * - * @file lib/unlang/xlat_register.h + * @file lib/unlang/xlat_func.h * @brief Registration API for xlat functions. * * @copyright 2023 Arran Cudbard-Bell (a.cudbardb@freeradius.org) @@ -27,15 +27,27 @@ RCSIDH(xlat_register_h, "$Id$") #include -xlat_t *xlat_register_module(TALLOC_CTX *ctx, module_inst_ctx_t const *mctx, - char const *name, xlat_func_t func, fr_type_t return_type); -xlat_t *xlat_register(TALLOC_CTX *ctx, char const *name, xlat_func_t func, fr_type_t return_type) CC_HINT(nonnull(2)); +/* + * GCC doesn't support flag_enum (yet) + * + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81665 + */ +DIAG_OFF(attributes) +typedef enum CC_HINT(flag_enum) { + XLAT_FUNC_FLAG_NONE = 0x00, + XLAT_FUNC_FLAG_PURE = 0x01 +} xlat_func_flags_t; +DIAG_ON(attributes) + +xlat_t *xlat_func_register_module(TALLOC_CTX *ctx, module_inst_ctx_t const *mctx, + char const *name, xlat_func_t func, fr_type_t return_type); +xlat_t *xlat_func_register(TALLOC_CTX *ctx, char const *name, xlat_func_t func, fr_type_t return_type) CC_HINT(nonnull(2)); int xlat_func_args_set(xlat_t *xlat, xlat_arg_parser_t const args[]) CC_HINT(nonnull); int xlat_func_mono_set(xlat_t *xlat, xlat_arg_parser_t const *arg) CC_HINT(nonnull); -void xlat_func_flags_set(xlat_t *x, xlat_flags_t const *flags) CC_HINT(nonnull); +void xlat_func_flags_set(xlat_t *x, xlat_func_flags_t flags) CC_HINT(nonnull); /** Set a callback for global instantiation of xlat functions * @@ -45,12 +57,12 @@ void xlat_func_flags_set(xlat_t *x, xlat_flags_t const *flags) CC_HINT(nonnull) * @param[in] _detach A destructor callback. * @param[in] _uctx to pass to _instantiate and _detach callbacks. */ -#define xlat_async_instantiate_set(_xlat, _instantiate, _inst_struct, _detach, _uctx) \ - _xlat_async_instantiate_set(_xlat, _instantiate, #_inst_struct, sizeof(_inst_struct), _detach, _uctx) -void _xlat_async_instantiate_set(xlat_t const *xlat, - xlat_instantiate_t instantiate, char const *inst_type, size_t inst_size, - xlat_detach_t detach, - void *uctx); +#define xlat_func_async_instantiate_set(_xlat, _instantiate, _inst_struct, _detach, _uctx) \ + _xlat_func_async_instantiate_set(_xlat, _instantiate, #_inst_struct, sizeof(_inst_struct), _detach, _uctx) +void _xlat_func_async_instantiate_set(xlat_t const *xlat, + xlat_instantiate_t instantiate, char const *inst_type, size_t inst_size, + xlat_detach_t detach, + void *uctx); /** Set a callback for thread-specific instantiation of xlat functions * @@ -60,17 +72,17 @@ void _xlat_async_instantiate_set(xlat_t const *xlat, * @param[in] _detach A destructor callback. * @param[in] _uctx to pass to _instantiate and _detach callbacks. */ -#define xlat_async_thread_instantiate_set(_xlat, _instantiate, _inst_struct, _detach, _uctx) \ - _xlat_async_thread_instantiate_set(_xlat, _instantiate, #_inst_struct, sizeof(_inst_struct), _detach, _uctx) -void _xlat_async_thread_instantiate_set(xlat_t const *xlat, - xlat_thread_instantiate_t thread_instantiate, - char const *thread_inst_type, size_t thread_inst_size, - xlat_thread_detach_t thread_detach, - void *uctx); +#define xlat_func_async_thread_instantiate_set(_xlat, _instantiate, _inst_struct, _detach, _uctx) \ + _xlat_func_async_thread_instantiate_set(_xlat, _instantiate, #_inst_struct, sizeof(_inst_struct), _detach, _uctx) +void _xlat_func_async_thread_instantiate_set(xlat_t const *xlat, + xlat_thread_instantiate_t thread_instantiate, + char const *thread_inst_type, size_t thread_inst_size, + xlat_thread_detach_t thread_detach, + void *uctx); -void xlat_unregister(char const *name); -void xlat_unregister_module(dl_module_inst_t const *inst); +void xlat_func_unregister(char const *name); +void xlat_func_unregister_module(dl_module_inst_t const *inst); /** @hidecallgraph */ -int xlat_register_init(void); -void xlat_register_free(void); +int xlat_func_init(void); +void xlat_func_free(void); diff --git a/src/lib/unlang/xlat_redundant.c b/src/lib/unlang/xlat_redundant.c index 03449b51d4..da1bfd5b72 100644 --- a/src/lib/unlang/xlat_redundant.c +++ b/src/lib/unlang/xlat_redundant.c @@ -27,7 +27,7 @@ RCSID("$Id$") #include #include -#include +#include #include #include @@ -450,7 +450,7 @@ int xlat_register_redundant(CONF_SECTION *cs) return 1; } - xlat = xlat_register(NULL, name2, xlat_redundant, return_type); + xlat = xlat_func_register(NULL, name2, xlat_redundant, return_type); if (!xlat) { ERROR("Registering xlat for %s section failed", fr_table_str_by_value(xlat_redundant_type_table, xr->type, "")); @@ -458,7 +458,7 @@ int xlat_register_redundant(CONF_SECTION *cs) return -1; } xlat_func_flags_set(xlat, &flags); - xlat_async_instantiate_set(xlat, xlat_redundant_instantiate, xlat_redundant_inst_t, NULL, xr); + xlat_func_async_instantiate_set(xlat, xlat_redundant_instantiate, xlat_redundant_inst_t, NULL, xr); if (args) xlat_func_args_set(xlat, xlat_redundant_args); return 0; diff --git a/src/modules/rlm_always/rlm_always.c b/src/modules/rlm_always/rlm_always.c index 7b858532bd..b30f0fa654 100644 --- a/src/modules/rlm_always/rlm_always.c +++ b/src/modules/rlm_always/rlm_always.c @@ -28,7 +28,7 @@ RCSID("$Id$") #include #include -#include +#include /* * The instance data for rlm_always is the list of fake values we are @@ -126,7 +126,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) return -1; } - xlat = xlat_register_module(inst, mctx, mctx->inst->name, always_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, always_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, always_xlat_args); return 0; diff --git a/src/modules/rlm_cache/rlm_cache.c b/src/modules/rlm_cache/rlm_cache.c index 9caaf926ee..03de1e5e0f 100644 --- a/src/modules/rlm_cache/rlm_cache.c +++ b/src/modules/rlm_cache/rlm_cache.c @@ -30,7 +30,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include "rlm_cache.h" @@ -972,7 +972,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) /* * Register the cache xlat function */ - xlat = xlat_register_module(inst, mctx, mctx->inst->name, cache_xlat, FR_TYPE_VOID); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, cache_xlat, FR_TYPE_VOID); xlat_func_args_set(xlat, cache_xlat_args); return 0; diff --git a/src/modules/rlm_chap/rlm_chap.c b/src/modules/rlm_chap/rlm_chap.c index a08e31916f..20717abe57 100644 --- a/src/modules/rlm_chap/rlm_chap.c +++ b/src/modules/rlm_chap/rlm_chap.c @@ -29,7 +29,7 @@ RCSID("$Id$") #include #include #include -#include +#include typedef struct { fr_dict_enum_value_t *auth_type; @@ -293,7 +293,7 @@ static int mod_load(void) { xlat_t *xlat; - xlat = xlat_register(NULL, "chap_password", xlat_func_chap_password, FR_TYPE_OCTETS); + xlat = xlat_func_register(NULL, "chap_password", xlat_func_chap_password, FR_TYPE_OCTETS); if (!xlat) return -1; xlat_func_args_set(xlat, xlat_func_chap_password_args); @@ -302,7 +302,7 @@ static int mod_load(void) static void mod_unload(void) { - xlat_unregister("chap_password"); + xlat_func_unregister("chap_password"); } /* diff --git a/src/modules/rlm_cipher/rlm_cipher.c b/src/modules/rlm_cipher/rlm_cipher.c index 4a4dc49faa..d1d5c96cc3 100644 --- a/src/modules/rlm_cipher/rlm_cipher.c +++ b/src/modules/rlm_cipher/rlm_cipher.c @@ -34,7 +34,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include #include @@ -1300,7 +1300,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) * Register decrypt xlat */ xlat_name = talloc_asprintf(inst, "%s_decrypt", mctx->inst->name); - xlat = xlat_register_module(inst, mctx, xlat_name, cipher_rsa_decrypt_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, xlat_name, cipher_rsa_decrypt_xlat, FR_TYPE_STRING); xlat_func_mono_set(xlat, cipher_rsa_decrypt_xlat_arg); talloc_free(xlat_name); @@ -1308,7 +1308,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) * Verify sign xlat */ xlat_name = talloc_asprintf(inst, "%s_verify", mctx->inst->name); - xlat = xlat_register_module(inst, mctx, xlat_name, cipher_rsa_verify_xlat, FR_TYPE_BOOL); + xlat = xlat_func_register_module(inst, mctx, xlat_name, cipher_rsa_verify_xlat, FR_TYPE_BOOL); xlat_func_args_set(xlat, cipher_rsa_verify_xlat_arg); talloc_free(xlat_name); } @@ -1337,7 +1337,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) * Register encrypt xlat */ xlat_name = talloc_asprintf(inst, "%s_encrypt", mctx->inst->name); - xlat = xlat_register_module(inst, mctx, xlat_name, cipher_rsa_encrypt_xlat, FR_TYPE_OCTETS); + xlat = xlat_func_register_module(inst, mctx, xlat_name, cipher_rsa_encrypt_xlat, FR_TYPE_OCTETS); xlat_func_mono_set(xlat, cipher_rsa_encrypt_xlat_arg); talloc_free(xlat_name); @@ -1345,7 +1345,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) * Register sign xlat */ xlat_name = talloc_asprintf(inst, "%s_sign", mctx->inst->name); - xlat = xlat_register_module(inst, mctx, xlat_name, cipher_rsa_sign_xlat, FR_TYPE_OCTETS); + xlat = xlat_func_register_module(inst, mctx, xlat_name, cipher_rsa_sign_xlat, FR_TYPE_OCTETS); xlat_func_mono_set(xlat, cipher_rsa_sign_xlat_arg); talloc_free(xlat_name); @@ -1354,7 +1354,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) * so we can optimise for return types. */ xlat_name = talloc_asprintf(inst, "%s_certificate", mctx->inst->name); - xlat = xlat_register_module(inst, mctx, xlat_name, cipher_certificate_xlat, FR_TYPE_VOID); + xlat = xlat_func_register_module(inst, mctx, xlat_name, cipher_certificate_xlat, FR_TYPE_VOID); xlat_func_args_set(xlat, cipher_certificate_xlat_args); talloc_free(xlat_name); diff --git a/src/modules/rlm_client/rlm_client.c b/src/modules/rlm_client/rlm_client.c index 9a30b6c3bd..2bd1fd2bb0 100644 --- a/src/modules/rlm_client/rlm_client.c +++ b/src/modules/rlm_client/rlm_client.c @@ -30,7 +30,7 @@ RCSID("$Id$") #include #include #include -#include +#include /** Client field * @@ -353,7 +353,7 @@ static int mod_load(void) { xlat_t *xlat; - xlat = xlat_register(NULL, "client", xlat_client, FR_TYPE_STRING); + xlat = xlat_func_register(NULL, "client", xlat_client, FR_TYPE_STRING); if (!xlat) return -1; xlat_func_args_set(xlat, xlat_client_args); @@ -364,7 +364,7 @@ static int mod_load(void) static void mod_unload(void) { - xlat_unregister("client"); + xlat_func_unregister("client"); } /* diff --git a/src/modules/rlm_date/rlm_date.c b/src/modules/rlm_date/rlm_date.c index 3841f7b684..d04333ed60 100644 --- a/src/modules/rlm_date/rlm_date.c +++ b/src/modules/rlm_date/rlm_date.c @@ -26,7 +26,7 @@ #include #include -#include +#include #include #include @@ -235,7 +235,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) rlm_date_t *inst = talloc_get_type_abort(mctx->inst->data, rlm_date_t ); xlat_t *xlat; - xlat = xlat_register_module(inst, mctx, mctx->inst->name, xlat_date_convert, FR_TYPE_VOID); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, xlat_date_convert, FR_TYPE_VOID); xlat_func_args_set(xlat, xlat_date_convert_args); return 0; diff --git a/src/modules/rlm_delay/rlm_delay.c b/src/modules/rlm_delay/rlm_delay.c index f53b32770b..d735fa6665 100644 --- a/src/modules/rlm_delay/rlm_delay.c +++ b/src/modules/rlm_delay/rlm_delay.c @@ -29,7 +29,7 @@ RCSID("$Id$") #include #include #include -#include +#include typedef struct { tmpl_t *delay; //!< How long we delay for. @@ -269,7 +269,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) rlm_delay_t *inst = talloc_get_type_abort(mctx->inst->data, rlm_delay_t); xlat_t *xlat; - xlat = xlat_register_module(inst, mctx, mctx->inst->name, xlat_delay, FR_TYPE_TIME_DELTA); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, xlat_delay, FR_TYPE_TIME_DELTA); xlat_func_args_set(xlat, xlat_delay_args); return 0; } diff --git a/src/modules/rlm_dict/rlm_dict.c b/src/modules/rlm_dict/rlm_dict.c index 020b6fd29a..f4d1345750 100644 --- a/src/modules/rlm_dict/rlm_dict.c +++ b/src/modules/rlm_dict/rlm_dict.c @@ -26,7 +26,7 @@ RCSID("$Id$") #include #include #include -#include +#include static xlat_arg_parser_t const xlat_dict_attr_by_num_args[] = { { .required = true, .single = true, .type = FR_TYPE_UINT32 }, @@ -237,17 +237,17 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) */ if (cf_section_name2(mctx->inst->conf) != NULL) return 0; - xlat = xlat_register_module(inst, mctx, "attr_by_num", xlat_dict_attr_by_num, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, "attr_by_num", xlat_dict_attr_by_num, FR_TYPE_STRING); xlat_func_args_set(xlat, xlat_dict_attr_by_num_args); - xlat = xlat_register_module(inst, mctx, "attr_by_oid", xlat_dict_attr_by_oid, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, "attr_by_oid", xlat_dict_attr_by_oid, FR_TYPE_STRING); xlat_func_args_set(xlat, xlat_dict_attr_by_oid_args); - xlat = xlat_register_module(inst, mctx, "vendor", xlat_vendor, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, "vendor", xlat_vendor, FR_TYPE_STRING); xlat_func_args_set(xlat, xlat_vendor_args); - xlat = xlat_register_module(inst, mctx, "vendor_num", xlat_vendor_num, FR_TYPE_UINT32); + xlat = xlat_func_register_module(inst, mctx, "vendor_num", xlat_vendor_num, FR_TYPE_UINT32); xlat_func_args_set(xlat, xlat_vendor_num_args); - xlat = xlat_register_module(inst, mctx, "attr", xlat_attr, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, "attr", xlat_attr, FR_TYPE_STRING); xlat_func_args_set(xlat, xlat_attr_args); - xlat = xlat_register_module(inst, mctx, "attr_num", xlat_attr_num, FR_TYPE_UINT32); + xlat = xlat_func_register_module(inst, mctx, "attr_num", xlat_attr_num, FR_TYPE_UINT32); xlat_func_args_set(xlat, xlat_attr_num_args); return 0; diff --git a/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c b/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c index 59b3571513..35a6e83cab 100644 --- a/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c +++ b/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c @@ -100,14 +100,14 @@ static int mod_load(void) { if (fr_aka_sim_init() < 0) return -1; - fr_aka_sim_xlat_register(); + fr_aka_sim_xlat_func_register(); return 0; } static void mod_unload(void) { - fr_aka_sim_xlat_unregister(); + fr_aka_sim_xlat_func_unregister(); fr_aka_sim_free(); } diff --git a/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c b/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c index 96fb5d5f29..a17172cfca 100644 --- a/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c +++ b/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c @@ -78,14 +78,14 @@ static int mod_load(void) { if (fr_aka_sim_init() < 0) return -1; - fr_aka_sim_xlat_register(); + fr_aka_sim_xlat_func_register(); return 0; } static void mod_unload(void) { - fr_aka_sim_xlat_unregister(); + fr_aka_sim_xlat_func_unregister(); fr_aka_sim_free(); } diff --git a/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c b/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c index 2170eb4313..ac39e79745 100644 --- a/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c +++ b/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c @@ -77,14 +77,14 @@ static int mod_load(void) { if (fr_aka_sim_init() < 0) return -1; - fr_aka_sim_xlat_register(); + fr_aka_sim_xlat_func_register(); return 0; } static void mod_unload(void) { - fr_aka_sim_xlat_unregister(); + fr_aka_sim_xlat_func_unregister(); fr_aka_sim_free(); } diff --git a/src/modules/rlm_escape/rlm_escape.c b/src/modules/rlm_escape/rlm_escape.c index ce4a8f5d94..dc1cc5c5ff 100644 --- a/src/modules/rlm_escape/rlm_escape.c +++ b/src/modules/rlm_escape/rlm_escape.c @@ -29,7 +29,7 @@ USES_APPLE_DEPRECATED_API #include #include -#include +#include #include @@ -197,13 +197,13 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) xlat_t *xlat; MEM(unescape = talloc_asprintf(NULL, "un%s", mctx->inst->name)); - xlat = xlat_register_module(NULL, mctx, mctx->inst->name, escape_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(NULL, mctx, mctx->inst->name, escape_xlat, FR_TYPE_STRING); xlat_func_mono_set(xlat, escape_xlat_arg); - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); - xlat = xlat_register_module(NULL, mctx, unescape, unescape_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(NULL, mctx, unescape, unescape_xlat, FR_TYPE_STRING); xlat_func_mono_set(xlat, unescape_xlat_arg); - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); talloc_free(unescape); return 0; diff --git a/src/modules/rlm_exec/rlm_exec.c b/src/modules/rlm_exec/rlm_exec.c index 6f65e60541..a956a9aa62 100644 --- a/src/modules/rlm_exec/rlm_exec.c +++ b/src/modules/rlm_exec/rlm_exec.c @@ -32,7 +32,7 @@ RCSID("$Id$") #include #include #include -#include +#include /* * Define a structure for our module configuration. @@ -173,7 +173,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) } }; - xlat = xlat_register_module(NULL, mctx, mctx->inst->name, exec_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(NULL, mctx, mctx->inst->name, exec_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, exec_xlat_args); if (inst->input) { diff --git a/src/modules/rlm_icmp/rlm_icmp.c b/src/modules/rlm_icmp/rlm_icmp.c index 15d946fd96..d6c1a099b9 100644 --- a/src/modules/rlm_icmp/rlm_icmp.c +++ b/src/modules/rlm_icmp/rlm_icmp.c @@ -29,7 +29,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include #include @@ -498,7 +498,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) rlm_icmp_t *inst = talloc_get_type_abort(mctx->inst->data, rlm_icmp_t); xlat_t *xlat; - xlat = xlat_register_module(inst, mctx, mctx->inst->name, xlat_icmp, FR_TYPE_BOOL); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, xlat_icmp, FR_TYPE_BOOL); xlat_func_args_set(xlat, xlat_icmp_args); FR_TIME_DELTA_BOUND_CHECK("timeout", inst->timeout, >=, fr_time_delta_from_msec(100)); /* 1/10s minimum timeout */ diff --git a/src/modules/rlm_idn/rlm_idn.c b/src/modules/rlm_idn/rlm_idn.c index 646eb42488..56a68c245c 100644 --- a/src/modules/rlm_idn/rlm_idn.c +++ b/src/modules/rlm_idn/rlm_idn.c @@ -25,7 +25,7 @@ RCSID("$Id$") #include #include -#include +#include #include @@ -153,9 +153,9 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) rlm_idn_t *inst = talloc_get_type_abort(mctx->inst->data, rlm_idn_t); xlat_t *xlat; - xlat = xlat_register_module(inst, mctx, mctx->inst->name, xlat_idna, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, xlat_idna, FR_TYPE_STRING); xlat_func_mono_set(xlat, xlat_idna_arg); - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); return 0; } diff --git a/src/modules/rlm_json/rlm_json.c b/src/modules/rlm_json/rlm_json.c index 3bd6c16aa0..d21d867e60 100644 --- a/src/modules/rlm_json/rlm_json.c +++ b/src/modules/rlm_json/rlm_json.c @@ -32,7 +32,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include #include @@ -530,13 +530,13 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) char *name; fr_json_format_t *format = inst->format; - xlat = xlat_register_module(inst, mctx, "jsonquote", json_quote_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, "jsonquote", json_quote_xlat, FR_TYPE_STRING); if (xlat) xlat_func_mono_set(xlat, json_quote_xlat_arg); - xlat = xlat_register_module(inst, mctx, "jpathvalidate", jpath_validate_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, "jpathvalidate", jpath_validate_xlat, FR_TYPE_STRING); if (xlat) xlat_func_mono_set(xlat, jpath_validate_xlat_arg); name = talloc_asprintf(inst, "%s_encode", mctx->inst->name); - xlat = xlat_register_module(inst, mctx, name, json_encode_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, name, json_encode_xlat, FR_TYPE_STRING); xlat_func_mono_set(xlat, json_encode_xlat_arg); talloc_free(name); diff --git a/src/modules/rlm_ldap/rlm_ldap.c b/src/modules/rlm_ldap/rlm_ldap.c index c99782047f..89c07ad110 100644 --- a/src/modules/rlm_ldap/rlm_ldap.c +++ b/src/modules/rlm_ldap/rlm_ldap.c @@ -40,7 +40,7 @@ USES_APPLE_DEPRECATED_API #include #include -#include +#include static CONF_PARSER sasl_mech_dynamic[] = { { FR_CONF_OFFSET("mech", FR_TYPE_TMPL | FR_TYPE_NOT_EMPTY, fr_ldap_sasl_t_dynamic_t, mech) }, @@ -1772,18 +1772,18 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) inst->cache_da = inst->group_da; /* Default to the group_da */ } - xlat = xlat_register_module(NULL, mctx, mctx->inst->name, ldap_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(NULL, mctx, mctx->inst->name, ldap_xlat, FR_TYPE_STRING); xlat_func_mono_set(xlat, ldap_xlat_arg); - xlat = xlat_register_module(NULL, mctx, "ldap_escape", ldap_escape_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(NULL, mctx, "ldap_escape", ldap_escape_xlat, FR_TYPE_STRING); if (xlat) { xlat_func_mono_set(xlat, ldap_escape_xlat_arg); - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); } - xlat = xlat_register_module(NULL, mctx, "ldap_unescape", ldap_unescape_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(NULL, mctx, "ldap_unescape", ldap_unescape_xlat, FR_TYPE_STRING); if (xlat) { xlat_func_mono_set(xlat, ldap_escape_xlat_arg); - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); } map_proc_register(inst, mctx->inst->name, mod_map_proc, ldap_map_verify, 0); diff --git a/src/modules/rlm_linelog/rlm_linelog.c b/src/modules/rlm_linelog/rlm_linelog.c index 24208b08f8..7acda9ffdd 100644 --- a/src/modules/rlm_linelog/rlm_linelog.c +++ b/src/modules/rlm_linelog/rlm_linelog.c @@ -31,7 +31,7 @@ RCSID("$Id$") #include #include -#include +#include #ifdef HAVE_FCNTL_H # include @@ -907,7 +907,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) XLAT_ARG_PARSER_TERMINATOR }; - xlat = xlat_register_module(inst, mctx, mctx->inst->name, linelog_xlat, FR_TYPE_SIZE); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, linelog_xlat, FR_TYPE_SIZE); xlat_func_mono_set(xlat, linelog_xlat_args); return 0; diff --git a/src/modules/rlm_mschap/rlm_mschap.c b/src/modules/rlm_mschap/rlm_mschap.c index ecbbc7f6ee..65c2e8d4ea 100644 --- a/src/modules/rlm_mschap/rlm_mschap.c +++ b/src/modules/rlm_mschap/rlm_mschap.c @@ -41,7 +41,7 @@ RCSID("$Id$") #include #include -#include +#include #include #include @@ -2279,7 +2279,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) rlm_mschap_t *inst = talloc_get_type_abort(mctx->inst->data, rlm_mschap_t); xlat_t *xlat; - xlat = xlat_register_module(inst, mctx, mctx->inst->name, mschap_xlat, FR_TYPE_VOID); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, mschap_xlat, FR_TYPE_VOID); xlat_func_args_set(xlat, mschap_xlat_args); return 0; diff --git a/src/modules/rlm_perl/rlm_perl.c b/src/modules/rlm_perl/rlm_perl.c index 2b246b0db5..ddd999c009 100644 --- a/src/modules/rlm_perl/rlm_perl.c +++ b/src/modules/rlm_perl/rlm_perl.c @@ -29,7 +29,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include DIAG_OFF(DIAG_UNKNOWN_PRAGMAS) @@ -581,7 +581,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) { xlat_t *xlat; - xlat = xlat_register_module(NULL, mctx, mctx->inst->name, perl_xlat, FR_TYPE_VOID); + xlat = xlat_func_register_module(NULL, mctx, mctx->inst->name, perl_xlat, FR_TYPE_VOID); xlat_func_args_set(xlat, perl_xlat_args); return 0; diff --git a/src/modules/rlm_redis/rlm_redis.c b/src/modules/rlm_redis/rlm_redis.c index 1c61528b3f..043cb86632 100644 --- a/src/modules/rlm_redis/rlm_redis.c +++ b/src/modules/rlm_redis/rlm_redis.c @@ -32,7 +32,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include #include @@ -453,19 +453,19 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) char *name; xlat_t *xlat; - xlat = xlat_register_module(inst, mctx, mctx->inst->name, redis_xlat, FR_TYPE_VOID); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, redis_xlat, FR_TYPE_VOID); xlat_func_args_set(xlat, redis_args); /* * %(redis_node:[ idx]) */ name = talloc_asprintf(NULL, "%s_node", mctx->inst->name); - xlat = xlat_register_module(inst, mctx, name, redis_node_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, name, redis_node_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, redis_node_xlat_args); talloc_free(name); name = talloc_asprintf(NULL, "%s_remap", mctx->inst->name); - xlat = xlat_register_module(inst, mctx, name, redis_remap_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, name, redis_remap_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, redis_remap_xlat_args); talloc_free(name); diff --git a/src/modules/rlm_rest/rlm_rest.c b/src/modules/rlm_rest/rlm_rest.c index 56f15bab14..1df7adca6f 100644 --- a/src/modules/rlm_rest/rlm_rest.c +++ b/src/modules/rlm_rest/rlm_rest.c @@ -33,7 +33,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include #include "rest.h" @@ -1245,7 +1245,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) rlm_rest_t *inst = talloc_get_type_abort(mctx->inst->data, rlm_rest_t); xlat_t *xlat; - xlat = xlat_register_module(inst, mctx, mctx->inst->name, rest_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, rest_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, rest_xlat_args); return 0; diff --git a/src/modules/rlm_soh/rlm_soh.c b/src/modules/rlm_soh/rlm_soh.c index 105627097e..b6cf4d6159 100644 --- a/src/modules/rlm_soh/rlm_soh.c +++ b/src/modules/rlm_soh/rlm_soh.c @@ -26,7 +26,7 @@ RCSID("$Id$") #include #include #include -#include +#include typedef struct { bool dhcp; @@ -274,7 +274,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) rlm_soh_t *inst = talloc_get_type_abort(mctx->inst->data, rlm_soh_t); xlat_t *xlat; - xlat = xlat_register_module(inst, mctx, mctx->inst->name, soh_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, soh_xlat, FR_TYPE_STRING); xlat_func_args_set(xlat, soh_xlat_args); return 0; diff --git a/src/modules/rlm_sql/rlm_sql.c b/src/modules/rlm_sql/rlm_sql.c index b6a06d82cd..a20a737076 100644 --- a/src/modules/rlm_sql/rlm_sql.c +++ b/src/modules/rlm_sql/rlm_sql.c @@ -37,7 +37,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include @@ -1059,7 +1059,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) /* * Register the SQL xlat function */ - xlat = xlat_register_module(inst, mctx, mctx->inst->name, sql_xlat, FR_TYPE_VOID); /* Returns an integer sometimes */ + xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, sql_xlat, FR_TYPE_VOID); /* Returns an integer sometimes */ /* * The xlat escape function needs access to inst - so diff --git a/src/modules/rlm_test/rlm_test.c b/src/modules/rlm_test/rlm_test.c index 2fcff357df..3dd12809ef 100644 --- a/src/modules/rlm_test/rlm_test.c +++ b/src/modules/rlm_test/rlm_test.c @@ -30,7 +30,7 @@ RCSID("$Id$") #include #include #include -#include +#include /* * Define a structure for our module configuration. @@ -484,14 +484,14 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) } if (!cf_section_name2(mctx->inst->conf)) { - if (!(xlat = xlat_register_module(inst, mctx, "test_trigger", trigger_test_xlat, FR_TYPE_BOOL))) return -1; + if (!(xlat = xlat_func_register_module(inst, mctx, "test_trigger", trigger_test_xlat, FR_TYPE_BOOL))) return -1; xlat_func_args_set(xlat, trigger_test_xlat_args); - if (!(xlat = xlat_register_module(inst, mctx, "test", test_xlat, FR_TYPE_STRING))) return -1; + if (!(xlat = xlat_func_register_module(inst, mctx, "test", test_xlat, FR_TYPE_STRING))) return -1; xlat_func_args_set(xlat, test_xlat_args); } else { - if (!(xlat = xlat_register_module(inst, mctx, mctx->inst->name, test_xlat, FR_TYPE_VOID))) return -1; + if (!(xlat = xlat_func_register_module(inst, mctx, mctx->inst->name, test_xlat, FR_TYPE_VOID))) return -1; xlat_func_args_set(xlat, test_xlat_args); } diff --git a/src/modules/rlm_unbound/rlm_unbound.c b/src/modules/rlm_unbound/rlm_unbound.c index 1d773b21ae..319860a1e7 100644 --- a/src/modules/rlm_unbound/rlm_unbound.c +++ b/src/modules/rlm_unbound/rlm_unbound.c @@ -29,7 +29,7 @@ RCSID("$Id$") #include #include #include -#include +#include #include #include "io.h" @@ -491,7 +491,7 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) return -1; } - if(!(xlat = xlat_register_module(NULL, mctx, mctx->inst->name, xlat_unbound, FR_TYPE_VOID))) return -1; + if(!(xlat = xlat_func_register_module(NULL, mctx, mctx->inst->name, xlat_unbound, FR_TYPE_VOID))) return -1; xlat_func_args_set(xlat, xlat_unbound_args); return 0; diff --git a/src/modules/rlm_unpack/rlm_unpack.c b/src/modules/rlm_unpack/rlm_unpack.c index 92d8567b38..5a0ba45024 100644 --- a/src/modules/rlm_unpack/rlm_unpack.c +++ b/src/modules/rlm_unpack/rlm_unpack.c @@ -26,7 +26,7 @@ RCSID("$Id$") #include #include -#include +#include #include #include @@ -134,10 +134,10 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) { xlat_t *xlat; - xlat = xlat_register_module(NULL, mctx, "unpack", unpack_xlat, FR_TYPE_VOID); + xlat = xlat_func_register_module(NULL, mctx, "unpack", unpack_xlat, FR_TYPE_VOID); if (xlat) { xlat_func_args_set(xlat, unpack_xlat_args); - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); } return 0; diff --git a/src/modules/rlm_yubikey/rlm_yubikey.c b/src/modules/rlm_yubikey/rlm_yubikey.c index ff7e60c36b..81d5bea1c7 100644 --- a/src/modules/rlm_yubikey/rlm_yubikey.c +++ b/src/modules/rlm_yubikey/rlm_yubikey.c @@ -26,7 +26,7 @@ RCSID("$Id$") #include -#include +#include #include "rlm_yubikey.h" #ifdef HAVE_YKCLIENT @@ -197,10 +197,10 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) } #endif - xlat = xlat_register_module(inst, mctx, "modhextohex", modhex_to_hex_xlat, FR_TYPE_STRING); + xlat = xlat_func_register_module(inst, mctx, "modhextohex", modhex_to_hex_xlat, FR_TYPE_STRING); if (xlat) { xlat_func_mono_set(xlat, modhex_to_hex_xlat_arg); - xlat_func_flags_set(xlat, XLAT_FLAG_PURE); + xlat_func_flags_set(xlat, XLAT_FUNC_FLAG_PURE); } return 0; } diff --git a/src/process/eap_aka/base.c b/src/process/eap_aka/base.c index 0d9a08b2f3..22c9708518 100644 --- a/src/process/eap_aka/base.c +++ b/src/process/eap_aka/base.c @@ -251,14 +251,14 @@ static int mod_load(void) { if (unlikely(fr_aka_sim_init() < 0)) return -1; - fr_aka_sim_xlat_register(); + fr_aka_sim_xlat_func_register(); return 0; } static void mod_unload(void) { - fr_aka_sim_xlat_unregister(); + fr_aka_sim_xlat_func_unregister(); fr_aka_sim_free(); } diff --git a/src/process/eap_aka_prime/base.c b/src/process/eap_aka_prime/base.c index 4f665a1d03..c4d6bbc28a 100644 --- a/src/process/eap_aka_prime/base.c +++ b/src/process/eap_aka_prime/base.c @@ -252,14 +252,14 @@ static int mod_load(void) { if (unlikely(fr_aka_sim_init() < 0)) return -1; - fr_aka_sim_xlat_register(); + fr_aka_sim_xlat_func_register(); return 0; } static void mod_unload(void) { - fr_aka_sim_xlat_unregister(); + fr_aka_sim_xlat_func_unregister(); fr_aka_sim_free(); } diff --git a/src/process/eap_sim/base.c b/src/process/eap_sim/base.c index d98ec6d44e..1101707830 100644 --- a/src/process/eap_sim/base.c +++ b/src/process/eap_sim/base.c @@ -239,14 +239,14 @@ static int mod_load(void) { if (unlikely(fr_aka_sim_init() < 0)) return -1; - fr_aka_sim_xlat_register(); + fr_aka_sim_xlat_func_register(); return 0; } static void mod_unload(void) { - fr_aka_sim_xlat_unregister(); + fr_aka_sim_xlat_func_unregister(); fr_aka_sim_free(); }