chiark / gitweb /
sd-bus: rename sd_bus_open_system_container() to sd_bus_open_system_machine()
[elogind.git] / src / login / loginctl.c
index 914f3169989551dd8c54de0ef6537b2efca7b6fd..03abb7594f1ca952a0662f222aa04465ab2505a3 100644 (file)
@@ -271,6 +271,7 @@ typedef struct SessionStatusInfo {
         const char *class;
         const char *state;
         const char *scope;
+        const char *desktop;
 } SessionStatusInfo;
 
 typedef struct UserStatusInfo {
@@ -363,6 +364,7 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li
                 { "RemoteHost", "s", NULL, offsetof(SessionStatusInfo, remote_host) },
                 { "RemoteUser", "s", NULL, offsetof(SessionStatusInfo, remote_user) },
                 { "Service",    "s", NULL, offsetof(SessionStatusInfo, service) },
+                { "Desktop",    "s", NULL, offsetof(SessionStatusInfo, desktop) },
                 { "Type",       "s", NULL, offsetof(SessionStatusInfo, type) },
                 { "Class",      "s", NULL, offsetof(SessionStatusInfo, class) },
                 { "Scope",      "s", NULL, offsetof(SessionStatusInfo, scope) },
@@ -382,10 +384,8 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li
         int r;
 
         r = bus_map_all_properties(bus, "org.freedesktop.login1", path, map, &i);
-        if (r < 0) {
-                log_error("Could not get properties: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Could not get properties: %m");
 
         if (*new_line)
                 printf("\n");
@@ -423,7 +423,7 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li
                 printf("\t    Seat: %s", i.seat);
 
                 if (i.vtnr > 0)
-                        printf("; vc%i", i.vtnr);
+                        printf("; vc%u", i.vtnr);
 
                 printf("\n");
         }
@@ -453,13 +453,18 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li
 
                 printf("\n");
         } else if (i.type) {
-                printf("\t    Type: %s\n", i.type);
+                printf("\t    Type: %s", i.type);
 
                 if (i.class)
                         printf("; class %s", i.class);
+
+                printf("\n");
         } else if (i.class)
                 printf("\t   Class: %s\n", i.class);
 
+        if (!isempty(i.desktop))
+                printf("\t Desktop: %s\n", i.desktop);
+
         if (i.state)
                 printf("\t   State: %s\n", i.state);
 
@@ -491,7 +496,7 @@ static int print_user_status_info(sd_bus *bus, const char *path, bool *new_line)
 
         r = bus_map_all_properties(bus, "org.freedesktop.login1", path, map, &i);
         if (r < 0) {
-                log_error("Could not get properties: %s", strerror(-r));
+                log_error_errno(r, "Could not get properties: %m");
                 goto finish;
         }
 
@@ -555,7 +560,7 @@ static int print_seat_status_info(sd_bus *bus, const char *path, bool *new_line)
 
         r = bus_map_all_properties(bus, "org.freedesktop.login1", path, map, &i);
         if (r < 0) {
-                log_error("Could not get properties: %s", strerror(-r));
+                log_error_errno(r, "Could not get properties: %m");
                 goto finish;
         }
 
@@ -610,7 +615,7 @@ static int show_properties(sd_bus *bus, const char *path, bool *new_line) {
 
         r = bus_print_all_properties(bus, "org.freedesktop.login1", path, arg_property, arg_all);
         if (r < 0)
-                log_error("Could not get properties: %s", strerror(-r));
+                log_error_errno(r, "Could not get properties: %m");
 
         return r;
 }
@@ -692,10 +697,8 @@ static int show_user(sd_bus *bus, char **args, unsigned n) {
                 uid_t uid;
 
                 r = get_user_creds((const char**) (args+i), &uid, NULL, NULL, NULL);
-                if (r < 0) {
-                        log_error("Failed to look up user %s: %s", args[i], strerror(-r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to look up user %s: %m", args[i]);
 
                 r = sd_bus_call_method(
                                 bus,
@@ -852,10 +855,8 @@ static int enable_linger(sd_bus *bus, char **args, unsigned n) {
                 uid_t uid;
 
                 r = get_user_creds((const char**) (args+i), &uid, NULL, NULL, NULL);
-                if (r < 0) {
-                        log_error("Failed to look up user %s: %s", args[i], strerror(-r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to look up user %s: %m", args[i]);
 
                 r = sd_bus_call_method (
                         bus,
@@ -885,10 +886,8 @@ static int terminate_user(sd_bus *bus, char **args, unsigned n) {
                 uid_t uid;
 
                 r = get_user_creds((const char**) (args+i), &uid, NULL, NULL, NULL);
-                if (r < 0) {
-                        log_error("Failed to look up user %s: %s", args[i], strerror(-r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to look up user %s: %m", args[i]);
 
                 r = sd_bus_call_method (
                         bus,
@@ -921,10 +920,8 @@ static int kill_user(sd_bus *bus, char **args, unsigned n) {
                 uid_t uid;
 
                 r = get_user_creds((const char**) (args+i), &uid, NULL, NULL, NULL);
-                if (r < 0) {
-                        log_error("Failed to look up user %s: %s", args[i], strerror(-r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to look up user %s: %m", args[i]);
 
                 r = sd_bus_call_method (
                         bus,
@@ -1040,8 +1037,7 @@ static int terminate_seat(sd_bus *bus, char **args, unsigned n) {
         return 0;
 }
 
-static int help(void) {
-
+static void help(void) {
         printf("%s [OPTIONS...] {COMMAND} ...\n\n"
                "Send control commands to or query the login manager.\n\n"
                "  -h --help              Show this help\n"
@@ -1079,10 +1075,8 @@ static int help(void) {
                "  show-seat NAME...        Show properties of one or more seats\n"
                "  attach NAME DEVICE...    Attach one or more devices to a seat\n"
                "  flush-devices            Flush all device associations\n"
-               "  terminate-seat NAME...   Terminate all sessions on one or more seats\n",
-               program_invocation_short_name);
-
-        return 0;
+               "  terminate-seat NAME...   Terminate all sessions on one or more seats\n"
+               , program_invocation_short_name);
 }
 
 static int parse_argv(int argc, char *argv[]) {
@@ -1116,12 +1110,13 @@ static int parse_argv(int argc, char *argv[]) {
         assert(argc >= 0);
         assert(argv);
 
-        while ((c = getopt_long(argc, argv, "hp:als:H:M:", options, NULL)) >= 0) {
+        while ((c = getopt_long(argc, argv, "hp:als:H:M:", options, NULL)) >= 0)
 
                 switch (c) {
 
                 case 'h':
-                        return help();
+                        help();
+                        return 0;
 
                 case ARG_VERSION:
                         puts(PACKAGE_STRING);
@@ -1178,7 +1173,7 @@ static int parse_argv(int argc, char *argv[]) {
                         break;
 
                 case 'M':
-                        arg_transport = BUS_TRANSPORT_CONTAINER;
+                        arg_transport = BUS_TRANSPORT_MACHINE;
                         arg_host = optarg;
                         break;
 
@@ -1188,7 +1183,6 @@ static int parse_argv(int argc, char *argv[]) {
                 default:
                         assert_not_reached("Unhandled option");
                 }
-        }
 
         return 1;
 }
@@ -1291,7 +1285,7 @@ static int loginctl_main(sd_bus *bus, int argc, char *argv[]) {
 }
 
 int main(int argc, char *argv[]) {
-        _cleanup_bus_unref_ sd_bus *bus = NULL;
+        _cleanup_bus_close_unref_ sd_bus *bus = NULL;
         int r;
 
         setlocale(LC_ALL, "");
@@ -1304,7 +1298,7 @@ int main(int argc, char *argv[]) {
 
         r = bus_open_transport(arg_transport, arg_host, false, &bus);
         if (r < 0) {
-                log_error("Failed to create bus connection: %s", strerror(-r));
+                log_error_errno(r, "Failed to create bus connection: %m");
                 goto finish;
         }