chiark / gitweb /
Make autoreconf work again
[elogind.git] / src / update-utmp / update-utmp.c
index 311d686a8cc3e654cca5271985ba5eea355909ce..33535ebd7ff98b7d416827f9ad76ab96b4680f51 100644 (file)
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
-#include <assert.h>
 #include <errno.h>
 #include <string.h>
-#include <sys/types.h>
 #include <unistd.h>
 
 #ifdef HAVE_AUDIT
@@ -80,11 +78,9 @@ static int get_current_runlevel(Context *c) {
                  * here over the others, since these are the main
                  * runlevels used on Fedora. It might make sense to
                  * change the order on some distributions. */
-                { '5', SPECIAL_RUNLEVEL5_TARGET },
-                { '3', SPECIAL_RUNLEVEL3_TARGET },
-                { '4', SPECIAL_RUNLEVEL4_TARGET },
-                { '2', SPECIAL_RUNLEVEL2_TARGET },
-                { '1', SPECIAL_RESCUE_TARGET },
+                { '5', SPECIAL_GRAPHICAL_TARGET  },
+                { '3', SPECIAL_MULTI_USER_TARGET },
+                { '1', SPECIAL_RESCUE_TARGET     },
         };
 
         _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
@@ -133,7 +129,7 @@ static int on_reboot(Context *c) {
         if (c->audit_fd >= 0)
                 if (audit_log_user_comm_message(c->audit_fd, AUDIT_SYSTEM_BOOT, "", "systemd-update-utmp", NULL, NULL, NULL, 1) < 0 &&
                     errno != EPERM) {
-                        log_error("Failed to send audit message: %m");
+                        log_error_errno(errno, "Failed to send audit message: %m");
                         r = -errno;
                 }
 #endif
@@ -144,7 +140,7 @@ static int on_reboot(Context *c) {
 
         q = utmp_put_reboot(t);
         if (q < 0) {
-                log_error("Failed to write utmp record: %s", strerror(-q));
+                log_error_errno(q, "Failed to write utmp record: %m");
                 r = q;
         }
 
@@ -163,14 +159,14 @@ static int on_shutdown(Context *c) {
         if (c->audit_fd >= 0)
                 if (audit_log_user_comm_message(c->audit_fd, AUDIT_SYSTEM_SHUTDOWN, "", "systemd-update-utmp", NULL, NULL, NULL, 1) < 0 &&
                     errno != EPERM) {
-                        log_error("Failed to send audit message: %m");
+                        log_error_errno(errno, "Failed to send audit message: %m");
                         r = -errno;
                 }
 #endif
 
         q = utmp_put_shutdown();
         if (q < 0) {
-                log_error("Failed to write utmp record: %s", strerror(-q));
+                log_error_errno(q, "Failed to write utmp record: %m");
                 r = q;
         }
 
@@ -189,10 +185,8 @@ static int on_runlevel(Context *c) {
         q = utmp_get_runlevel(&previous, NULL);
 
         if (q < 0) {
-                if (q != -ESRCH && q != -ENOENT) {
-                        log_error("Failed to get current runlevel: %s", strerror(-q));
-                        return q;
-                }
+                if (q != -ESRCH && q != -ENOENT)
+                        return log_error_errno(q, "Failed to get current runlevel: %m");
 
                 previous = 0;
         }
@@ -217,7 +211,7 @@ static int on_runlevel(Context *c) {
 
                 if (audit_log_user_comm_message(c->audit_fd, AUDIT_SYSTEM_RUNLEVEL, s, "systemd-update-utmp", NULL, NULL, NULL, 1) < 0 &&
                     errno != EPERM) {
-                        log_error("Failed to send audit message: %m");
+                        log_error_errno(errno, "Failed to send audit message: %m");
                         r = -errno;
                 }
         }
@@ -225,7 +219,7 @@ static int on_runlevel(Context *c) {
 
         q = utmp_put_runlevel(runlevel, previous);
         if (q < 0 && q != -ESRCH && q != -ENOENT) {
-                log_error("Failed to write utmp record: %s", strerror(-q));
+                log_error_errno(q, "Failed to write utmp record: %m");
                 r = q;
         }
 
@@ -261,11 +255,11 @@ int main(int argc, char *argv[]) {
          * don't worry about it. */
         c.audit_fd = audit_open();
         if (c.audit_fd < 0 && errno != EAFNOSUPPORT && errno != EPROTONOSUPPORT)
-                log_error("Failed to connect to audit log: %m");
+                log_error_errno(errno, "Failed to connect to audit log: %m");
 #endif
         r = bus_open_system_systemd(&c.bus);
         if (r < 0) {
-                log_error("Failed to get D-Bus connection: %s", strerror(-r));
+                log_error_errno(r, "Failed to get D-Bus connection: %m");
                 r = -EIO;
                 goto finish;
         }