summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2022-09-12 13:44:59 +0200
committerJo-Philipp Wich <jo@mein.io>2022-09-12 13:46:18 +0200
commit0d022430861abfa84913936929f606671efddc8b (patch)
tree9da408ba5aa1518129f32db560ea4b757611ded4
parent82904bd4f92e5928d047db6396cc14ca2b07d89f (diff)
downloadrpcd-0d022430861abfa84913936929f606671efddc8b.tar.gz
ucode: initialize module search path early
Ensure that the default module search path is initialized before compiling ucode handler scripts in order to support compile time import statements. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--ucode.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ucode.c b/ucode.c
index c67a619..bc07047 100644
--- a/ucode.c
+++ b/ucode.c
@@ -929,7 +929,6 @@ rpc_ucode_script_execute(struct ubus_context *ctx, const char *path, uc_program_
script->path = strncpy(pptr, path, pathlen);
- uc_search_path_init(&config.module_search_path);
uc_vm_init(&script->vm, &config);
rpc_ucode_init_globals(script);
@@ -1019,6 +1018,10 @@ rpc_ucode_api_init(const struct rpc_daemon_ops *ops, struct ubus_context *ctx)
fprintf(stderr, "Failed to dlopen() ucode.so: %s, dynamic ucode plugins may fail\n",
dlerror());
}
+
+ /* initialize default module search path */
+ uc_search_path_init(&config.module_search_path);
+
if ((d = opendir(RPC_UCSCRIPT_DIRECTORY)) != NULL) {
while ((e = readdir(d)) != NULL) {
snprintf(path, sizeof(path), RPC_UCSCRIPT_DIRECTORY "/%s", e->d_name);