From: Jorge Pereira Date: Thu, 5 Jan 2023 19:57:28 +0000 (-0300) Subject: util: Add new fr_dict_global_set_lib_dir() function (#4835) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a1a9df08f4baf7d76592325d39c9dd1dd704912;p=thirdparty%2Ffreeradius-server.git util: Add new fr_dict_global_set_lib_dir() function (#4835) It helps to add extra directories to be checked during library load. --- diff --git a/src/lib/util/dict.h b/src/lib/util/dict.h index 12709aa98c0..19324116c8a 100644 --- a/src/lib/util/dict.h +++ b/src/lib/util/dict.h @@ -639,6 +639,8 @@ int fr_dict_global_ctx_free(fr_dict_gctx_t const *gctx); int fr_dict_global_ctx_dir_set(char const *dict_dir); +int fr_dict_global_ctx_libdir_append(char const *lib_dir); + void fr_dict_global_ctx_read_only(void); void fr_dict_global_ctx_debug(fr_dict_gctx_t const *gctx); diff --git a/src/lib/util/dict_util.c b/src/lib/util/dict_util.c index c622d024e6c..e678e2e794b 100644 --- a/src/lib/util/dict_util.c +++ b/src/lib/util/dict_util.c @@ -3930,6 +3930,20 @@ char const *fr_dict_global_ctx_dir(void) return dict_gctx->dict_dir_default; } +/** Add a new libdir for searching libraries. + * + * @param[in] lib_dir Library directory to add + * @return + * - 0 on success. + * - -1 on failure. + */ +int fr_dict_global_ctx_libdir_append(char const *lib_dir) +{ + if (!dict_gctx) return -1; + + return dl_search_path_append(dict_gctx->dict_loader, lib_dir); +} + /** Mark all dictionaries and the global dictionary ctx as read only * * Any attempts to add new attributes will now fail.