aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-09-26 19:46:22 -0400
committerMike Frysinger <vapier@gentoo.org>2015-09-26 19:46:22 -0400
commit6ec0de3146977b4b913c77edc58f840f5ce712b4 (patch)
tree3dd62e488a1a74b1989ad91b38f1c109cb51e9a9 /src
parentlibsbutil: gnulib: mark xgetcwd static inline (diff)
downloadsandbox-6ec0de3146977b4b913c77edc58f840f5ce712b4.tar.gz
sandbox-6ec0de3146977b4b913c77edc58f840f5ce712b4.tar.bz2
sandbox-6ec0de3146977b4b913c77edc58f840f5ce712b4.zip
libsbutil: add helpers for reading config options (w/out env export)
All sandbox settings thus far have been for libsandbox.so to process. With newer features though, we have settings that might only apply to the main sandbox program. Add some helper functions for parsing out those settings (which a later commit will utilize). Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'src')
-rw-r--r--src/environ.c6
-rw-r--r--src/sandbox.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/src/environ.c b/src/environ.c
index 5f22829..346bc26 100644
--- a/src/environ.c
+++ b/src/environ.c
@@ -101,6 +101,12 @@ static void setup_cfg_var(const char *env_var)
}
}
+bool sb_get_cnf_bool(const char *key, bool default_val)
+{
+ const char *val = rc_get_cnf_entry(sb_conf_file(), key, NULL);
+ return val ? is_val_on(val) : default_val;
+}
+
/* Get passed access variable from sandbox.conf for sandbox.d/, and set it in
* the environment. */
static int setup_access_var(const char *access_var)
diff --git a/src/sandbox.h b/src/sandbox.h
index 361d468..4233bd6 100644
--- a/src/sandbox.h
+++ b/src/sandbox.h
@@ -26,6 +26,8 @@ struct sandbox_info_t {
extern char **setup_environ(struct sandbox_info_t *sandbox_info);
+extern bool sb_get_cnf_bool(const char *, bool);
+
#define sb_warn(fmt, args...) fprintf(stderr, "%s:%s " fmt "\n", "sandbox", __func__, ## args)
#define sb_pwarn(fmt, args...) sb_warn(fmt ": %s\n", ## args, strerror(errno))
#define _sb_err(func, fmt, args...) do { sb_##func(fmt, ## args); exit(EXIT_FAILURE); } while (0)