From: Michael Tremer Date: Wed, 3 Aug 2022 10:27:47 +0000 (+0000) Subject: jail: Export in libpakfire X-Git-Tag: 0.9.28~599 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ce56f90626e51acc17540837895281e3a4ea0c9;p=pakfire.git jail: Export in libpakfire Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/include/pakfire/jail.h b/src/libpakfire/include/pakfire/jail.h index e5060925a..9edd5b426 100644 --- a/src/libpakfire/include/pakfire/jail.h +++ b/src/libpakfire/include/pakfire/jail.h @@ -21,8 +21,6 @@ #ifndef PAKFIRE_JAIL_H #define PAKFIRE_JAIL_H -#ifdef PAKFIRE_PRIVATE - #include struct pakfire_jail; @@ -54,6 +52,8 @@ int pakfire_jail_exec(struct pakfire_jail* jail, const char* argv[], char*** out int pakfire_jail_exec_script(struct pakfire_jail* jail, const char* script, const size_t size, const char* args[], char*** output); +#ifdef PAKFIRE_PRIVATE + // Convenience functions int pakfire_jail_run(struct pakfire* pakfire, const char* argv[], int flags, char*** output); int pakfire_jail_run_script(struct pakfire* pakfire, @@ -62,6 +62,6 @@ int pakfire_jail_run_script(struct pakfire* pakfire, int pakfire_jail_shell(struct pakfire* pakfire); int pakfire_jail_ldconfig(struct pakfire* pakfire); -#endif +#endif /* PAKFIRE_PRIVATE */ #endif /* PAKFIRE_JAIL_H */ diff --git a/src/libpakfire/jail.c b/src/libpakfire/jail.c index a5fdee074..999baf4ac 100644 --- a/src/libpakfire/jail.c +++ b/src/libpakfire/jail.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #define BUFFER_SIZE 1024 * 64 @@ -156,7 +157,8 @@ static int pakfire_jail_setup_interactive_env(struct pakfire_jail* jail) { return 0; } -int pakfire_jail_create(struct pakfire_jail** jail, struct pakfire* pakfire, int flags) { +PAKFIRE_EXPORT int pakfire_jail_create(struct pakfire_jail** jail, + struct pakfire* pakfire, int flags) { int r; // Allocate a new jail @@ -204,13 +206,13 @@ ERROR: return r; } -struct pakfire_jail* pakfire_jail_ref(struct pakfire_jail* jail) { +PAKFIRE_EXPORT struct pakfire_jail* pakfire_jail_ref(struct pakfire_jail* jail) { ++jail->nrefs; return jail; } -struct pakfire_jail* pakfire_jail_unref(struct pakfire_jail* jail) { +PAKFIRE_EXPORT struct pakfire_jail* pakfire_jail_unref(struct pakfire_jail* jail) { if (--jail->nrefs > 0) return jail; @@ -255,7 +257,8 @@ static int pakfire_jail_find_env(struct pakfire_jail* jail, const char* key) { } // Returns the value of an environment variable or NULL -const char* pakfire_jail_get_env(struct pakfire_jail* jail, const char* key) { +PAKFIRE_EXPORT const char* pakfire_jail_get_env(struct pakfire_jail* jail, + const char* key) { int i = pakfire_jail_find_env(jail, key); if (i < 0) return NULL; @@ -264,7 +267,8 @@ const char* pakfire_jail_get_env(struct pakfire_jail* jail, const char* key) { } // Sets an environment variable -int pakfire_jail_set_env(struct pakfire_jail* jail, const char* key, const char* value) { +PAKFIRE_EXPORT int pakfire_jail_set_env(struct pakfire_jail* jail, + const char* key, const char* value) { // Find the index where to write this value to int i = pakfire_jail_find_env(jail, key); if (i < 0) @@ -289,7 +293,7 @@ int pakfire_jail_set_env(struct pakfire_jail* jail, const char* key, const char* } // Imports an environment -int pakfire_jail_import_env(struct pakfire_jail* jail, const char* env[]) { +PAKFIRE_EXPORT int pakfire_jail_import_env(struct pakfire_jail* jail, const char* env[]) { if (!env) return 0; @@ -321,7 +325,7 @@ int pakfire_jail_import_env(struct pakfire_jail* jail, const char* env[]) { // Logging -int pakfire_jail_set_log_callback(struct pakfire_jail* jail, +PAKFIRE_EXPORT int pakfire_jail_set_log_callback(struct pakfire_jail* jail, pakfire_jail_log_callback callback, void* data) { jail->log_callback = callback; jail->log_data = data; @@ -1128,7 +1132,8 @@ ERROR: return exit; } -int pakfire_jail_exec(struct pakfire_jail* jail, const char* argv[], char*** output) { +PAKFIRE_EXPORT int pakfire_jail_exec(struct pakfire_jail* jail, + const char* argv[], char*** output) { int r; // Store logging callback @@ -1148,7 +1153,7 @@ int pakfire_jail_exec(struct pakfire_jail* jail, const char* argv[], char*** out return r; } -int pakfire_jail_exec_script(struct pakfire_jail* jail, +PAKFIRE_EXPORT int pakfire_jail_exec_script(struct pakfire_jail* jail, const char* script, const size_t size, const char* args[], char*** output) { char path[PATH_MAX]; const char** argv = NULL; diff --git a/src/libpakfire/libpakfire.sym b/src/libpakfire/libpakfire.sym index 2efa4df10..0ffe35787 100644 --- a/src/libpakfire/libpakfire.sym +++ b/src/libpakfire/libpakfire.sym @@ -133,6 +133,17 @@ global: pakfire_key_ref; pakfire_key_unref; + # jail + pakfire_jail_create; + pakfire_jail_exec; + pakfire_jail_exec_script; + pakfire_jail_get_env; + pakfire_jail_import_env; + pakfire_jail_ref; + pakfire_jail_set_env; + pakfire_jail_set_log_callback; + pakfire_jail_unref; + # log pakfire_log_get_priority; pakfire_log_set_function;