X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fmain.c;h=f7d76a2941d6b9af3816ab8cc6d3980d5b4dc6e3;hb=90d2e58ae9cc51f65dc2edce4ce93cff8030902b;hp=50325e1285debbc54eda008c95c2718d0d950fa0;hpb=39439087bf398c7d5b5baf1e79460f439b2f5ad9;p=elogind.git diff --git a/src/main.c b/src/main.c index 50325e128..f7d76a294 100644 --- a/src/main.c +++ b/src/main.c @@ -39,6 +39,7 @@ #include "loopback-setup.h" #include "kmod-setup.h" #include "locale-setup.h" +#include "selinux-setup.h" #include "load-fragment.h" #include "fdset.h" #include "special.h" @@ -180,20 +181,6 @@ static void install_crash_handler(void) { sigaction_many(&sa, SIGNALS_CRASH_HANDLER, -1); } -static int make_null_stdio(void) { - int null_fd, r; - - if ((null_fd = open("/dev/null", O_RDWR|O_NOCTTY)) < 0) { - log_error("Failed to open /dev/null: %m"); - return -errno; - } - - if ((r = make_stdio(null_fd)) < 0) - log_warning("Failed to dup2() device: %s", strerror(-r)); - - return r; -} - static int console_setup(bool do_reset) { int tty_fd, r; @@ -333,7 +320,7 @@ static int parse_proc_cmdline_word(const char *word) { #ifdef HAVE_SYSV_COMPAT "systemd.sysv_console=0|1 Connect output of SysV scripts to console\n" #endif - "systemd.log_target=console|kmsg|syslog|syslog-org-kmsg|null\n" + "systemd.log_target=console|kmsg|syslog|syslog-or-kmsg|null\n" " Log target\n" "systemd.log_level=LEVEL Log level\n" "systemd.log_color=0|1 Highlight important log messages\n" @@ -909,6 +896,11 @@ int main(int argc, char *argv[]) { arg_running_as = MANAGER_SYSTEM; log_set_target(LOG_TARGET_SYSLOG_OR_KMSG); + /* This might actually not return, but cause a + * reexecution */ + if (selinux_setup(argv) < 0) + goto finish; + if (label_init() < 0) goto finish; } else {