]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
util: Add new fr_dict_global_set_lib_dir() function (#4835)
authorJorge Pereira <jpereira@users.noreply.github.com>
Thu, 5 Jan 2023 19:57:28 +0000 (16:57 -0300)
committerGitHub <noreply@github.com>
Thu, 5 Jan 2023 19:57:28 +0000 (14:57 -0500)
It helps to add extra directories to be checked during library load.

src/lib/util/dict.h
src/lib/util/dict_util.c

index 12709aa98c0624df42d0a86b81ec3e1e68cb2b55..19324116c8adff6e04a1df19bef696bde31f77ac 100644 (file)
@@ -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);
index c622d024e6cead0f3f43f594a9ba04dc1e341fa5..e678e2e794b7a2995a34b568c86b9bb89e887e10 100644 (file)
@@ -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.