diff options
author | Colin Walters <walters@verbum.org> | 2004-11-02 20:27:48 +0000 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2004-11-02 20:27:48 +0000 |
commit | 73ffe59d87864d61b9d22f199fc6375840bf39bb (patch) | |
tree | 2678c957ba9300cd075252562012f6f4efb6bff2 /bus/selinux.c | |
parent | c7417009b1fe78fdad1ea2c397ecc1e656c33799 (diff) | |
download | dbus-73ffe59d87864d61b9d22f199fc6375840bf39bb.tar.gz |
2004-11-02 Colin Walters <walters@verbum.org>
* bus/selinux.c (bus_selinux_init): Split into two functions,
bus_selinux_pre_init and bus_selinux_post_init.
(bus_selinux_pre_init): Just determine whether SELinux is
enabled.
(bus_selinux_post_init): Do everything else.
* bus/main.c (main): Call bus_selinux_pre_init before parsing
config file, and bus_selinux_post_init after. This ensures that
we don't lose the policyreload notification thread that
bus_selinux_init created before forking previously.
* bus/test-main.c (test_pre_hook): Update for split.
Diffstat (limited to 'bus/selinux.c')
-rw-r--r-- | bus/selinux.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/bus/selinux.c b/bus/selinux.c index de68da33..96acddfe 100644 --- a/bus/selinux.c +++ b/bus/selinux.c @@ -205,11 +205,10 @@ bus_selinux_enabled (void) } /** - * Initialize the user space access vector cache (AVC) for D-BUS and set up - * logging callbacks. + * Do early initialization; determine whether SELinux is enabled. */ dbus_bool_t -bus_selinux_init (void) +bus_selinux_pre_init (void) { #ifdef HAVE_SELINUX int r; @@ -227,7 +226,25 @@ bus_selinux_init (void) } selinux_enabled = r != 0; + return TRUE; +#else + return TRUE; +#endif +} + +/** + * Initialize the user space access vector cache (AVC) for D-BUS and set up + * logging callbacks. + */ +dbus_bool_t +bus_selinux_full_init (void) +{ +#ifdef HAVE_SELINUX + int r; + char *bus_context; + _dbus_assert (bus_sid == SECSID_WILD); + if (!selinux_enabled) { _dbus_verbose ("SELinux not enabled in this kernel.\n"); |