chiark / gitweb /
sd-bus: reuse the KDBUS_CMD_FREE wrapper wherever appropriate
[elogind.git] / src / cgls / cgls.c
index 1840594ff6255d8db38afe238b1e691ce36f47e5..f400bccc0a72108de04ef369e00156d2434046b0 100644 (file)
@@ -46,8 +46,7 @@ static bool arg_all = false;
 static int arg_full = -1;
 static char* arg_machine = NULL;
 
-static int help(void) {
-
+static void help(void) {
         printf("%s [OPTIONS...] [CGROUP...]\n\n"
                "Recursively show control group contents.\n\n"
                "  -h --help           Show this help\n"
@@ -56,10 +55,8 @@ static int help(void) {
                "  -a --all            Show all groups, including empty\n"
                "  -l --full           Do not ellipsize output\n"
                "  -k                  Include kernel threads in output\n"
-               "  -M --machine        Show container\n",
-               program_invocation_short_name);
-
-        return 0;
+               "  -M --machine        Show container\n"
+               , program_invocation_short_name);
 }
 
 static int parse_argv(int argc, char *argv[]) {
@@ -84,12 +81,13 @@ static int parse_argv(int argc, char *argv[]) {
         assert(argc >= 1);
         assert(argv);
 
-        while ((c = getopt_long(argc, argv, "hkalM:", options, NULL)) >= 0) {
+        while ((c = getopt_long(argc, argv, "hkalM:", options, NULL)) >= 0)
 
                 switch (c) {
 
                 case 'h':
-                        return help();
+                        help();
+                        return 0;
 
                 case ARG_VERSION:
                         puts(PACKAGE_STRING);
@@ -122,7 +120,6 @@ static int parse_argv(int argc, char *argv[]) {
                 default:
                         assert_not_reached("Unhandled option");
                 }
-        }
 
         return 1;
 }
@@ -130,8 +127,8 @@ static int parse_argv(int argc, char *argv[]) {
 int main(int argc, char *argv[]) {
         int r = 0, retval = EXIT_FAILURE;
         int output_flags;
-        char _cleanup_free_ *root = NULL;
-        _cleanup_bus_unref_ sd_bus *bus = NULL;
+        _cleanup_free_ char *root = NULL;
+        _cleanup_bus_close_unref_ sd_bus *bus = NULL;
 
         log_parse_environment();
         log_open();
@@ -158,7 +155,7 @@ int main(int argc, char *argv[]) {
 
         r = bus_open_transport(BUS_TRANSPORT_LOCAL, NULL, 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;
         }
 
@@ -189,7 +186,7 @@ int main(int argc, char *argv[]) {
 
                 p = get_current_dir_name();
                 if (!p) {
-                        log_error("Cannot determine current working directory: %m");
+                        log_error_errno(errno, "Cannot determine current working directory: %m");
                         goto finish;
                 }
 
@@ -209,13 +206,13 @@ int main(int argc, char *argv[]) {
                                 m = strappenda("/run/systemd/machines/", arg_machine);
                                 r = parse_env_file(m, NEWLINE, "SCOPE", &scope, NULL);
                                 if (r < 0) {
-                                        log_error("Failed to get machine path: %s", strerror(-r));
+                                        log_error_errno(r, "Failed to get machine path: %m");
                                         goto finish;
                                 }
 
                                 path = unit_dbus_path_from_name(scope);
                                 if (!path) {
-                                        r = log_oom();
+                                        log_oom();
                                         goto finish;
                                 }
 
@@ -242,15 +239,15 @@ int main(int argc, char *argv[]) {
 
                                 root = strdup(cgroup);
                                 if (!root) {
-                                        r = log_oom();
+                                        log_oom();
                                         goto finish;
                                 }
 
                         } else
                                 r = cg_get_root_path(&root);
                         if (r < 0) {
-                                log_error("Failed to get %s path: %s",
-                                          arg_machine ? "machine" : "root", strerror(-r));
+                                log_error_errno(r, "Failed to get %s path: %m",
+                                                arg_machine ? "machine" : "root");
                                 goto finish;
                         }
 
@@ -260,7 +257,7 @@ int main(int argc, char *argv[]) {
         }
 
         if (r < 0) {
-                log_error("Failed to list cgroup tree %s: %s", root, strerror(-r));
+                log_error_errno(r, "Failed to list cgroup tree %s: %m", root);
                 retval = EXIT_FAILURE;
         } else
                 retval = EXIT_SUCCESS;