From: Nick Porter Date: Fri, 19 May 2023 15:31:51 +0000 (+0100) Subject: Move non instance-specific rlm_json xlats to mod_load X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=94e57a52ea6eb4d903eb8d3a662698aa0d2ba7fb;p=thirdparty%2Ffreeradius-server.git Move non instance-specific rlm_json xlats to mod_load --- diff --git a/src/modules/rlm_json/rlm_json.c b/src/modules/rlm_json/rlm_json.c index 93772b681f4..eac3de93d90 100644 --- a/src/modules/rlm_json/rlm_json.c +++ b/src/modules/rlm_json/rlm_json.c @@ -531,11 +531,6 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) char *name; fr_json_format_t *format = inst->format; - 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_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_func_register_module(inst, mctx, name, json_encode_xlat, FR_TYPE_STRING); xlat_func_mono_set(xlat, json_encode_xlat_arg); @@ -559,11 +554,24 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx) static int mod_load(void) { + xlat_t *xlat; + fr_json_version_print(); + if (unlikely(!(xlat = xlat_func_register(NULL, "jsonquote", json_quote_xlat, FR_TYPE_STRING)))) return -1; + xlat_func_mono_set(xlat, json_quote_xlat_arg); + if (unlikely(!(xlat = xlat_func_register(NULL, "jpathvalidate", jpath_validate_xlat, FR_TYPE_STRING)))) return -1; + xlat_func_mono_set(xlat, jpath_validate_xlat_arg); + return 0; } +static void mod_unload(void) +{ + xlat_func_unregister("jsonquote"); + xlat_func_unregister("jpathvalidate"); +} + /* * The module name should be the only globally exported symbol. * That is, everything else should be 'static'. @@ -580,6 +588,7 @@ module_rlm_t rlm_json = { .name = "json", .type = MODULE_TYPE_THREAD_SAFE, .onload = mod_load, + .unload = mod_unload, .config = module_config, .inst_size = sizeof(rlm_json_t), .bootstrap = mod_bootstrap