-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
/***
This file is part of systemd.
#include <assert.h>
#include <errno.h>
#include <string.h>
-#include <libaudit.h>
#include <sys/types.h>
#include <unistd.h>
#include <dbus/dbus.h>
+#ifdef HAVE_AUDIT
+#include <libaudit.h>
+#endif
+
#include "log.h"
#include "macro.h"
#include "util.h"
} table[] = {
/* The first target of this list that is active or has
* a job scheduled wins */
- { '0', SPECIAL_POWEROFF_TARGET },
- { '6', SPECIAL_REBOOT_TARGET },
{ '5', SPECIAL_RUNLEVEL5_TARGET },
{ '4', SPECIAL_RUNLEVEL4_TARGET },
{ '3', SPECIAL_RUNLEVEL3_TARGET },
#ifdef HAVE_AUDIT
if (c->audit_fd >= 0)
- if (audit_log_user_message(c->audit_fd, AUDIT_SYSTEM_BOOT, "", NULL, NULL, NULL, 1) < 0) {
+ if (audit_log_user_message(c->audit_fd, AUDIT_SYSTEM_BOOT, "init", NULL, NULL, NULL, 1) < 0) {
log_error("Failed to send audit message: %m");
r = -errno;
}
#ifdef HAVE_AUDIT
if (c->audit_fd >= 0)
- if (audit_log_user_message(c->audit_fd, AUDIT_SYSTEM_SHUTDOWN, "", NULL, NULL, NULL, 1) < 0) {
+ if (audit_log_user_message(c->audit_fd, AUDIT_SYSTEM_SHUTDOWN, "init", NULL, NULL, NULL, 1) < 0) {
log_error("Failed to send audit message: %m");
r = -errno;
}
previous = 0;
}
- /* Second get new runlevel */
+ /* Secondly, get new runlevel */
if ((runlevel = get_current_runlevel(c)) < 0)
return runlevel;
if (c->audit_fd >= 0) {
char *s = NULL;
- if (asprintf(&s, "old-level=%c new-level=%c", previous, runlevel) < 0)
+ if (asprintf(&s, "old-level=%c new-level=%c",
+ previous > 0 ? previous : 'N',
+ runlevel > 0 ? runlevel : 'N') < 0)
return -ENOMEM;
if (audit_log_user_message(c->audit_fd, AUDIT_SYSTEM_RUNLEVEL, s, NULL, NULL, NULL, 1) < 0) {
c.audit_fd = -1;
#endif
- /* if (getppid() != 1) { */
- /* log_error("This program should be invoked by init only."); */
- /* return 1; */
- /* } */
+ if (getppid() != 1) {
+ log_error("This program should be invoked by init only.");
+ return 1;
+ }
if (argc != 2) {
log_error("This program requires one argument.");
log_set_target(LOG_TARGET_SYSLOG_OR_KMSG);
log_parse_environment();
+ log_open();
#ifdef HAVE_AUDIT
if ((c.audit_fd = audit_open()) < 0)
goto finish;
}
- log_info("systemd-update-utmp running as pid %lu", (unsigned long) getpid());
+ log_debug("systemd-update-utmp running as pid %lu", (unsigned long) getpid());
if (streq(argv[1], "reboot"))
r = on_reboot(&c);
r = -EINVAL;
}
- log_info("systemd-update-utmp stopped as pid %lu", (unsigned long) getpid());
-finish:
+ log_debug("systemd-update-utmp stopped as pid %lu", (unsigned long) getpid());
+finish:
#ifdef HAVE_AUDIT
if (c.audit_fd >= 0)
audit_close(c.audit_fd);