]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemctl: minor modernization
authorMike Yuan <me@yhndnzj.com>
Tue, 17 Oct 2023 12:35:31 +0000 (20:35 +0800)
committerMike Yuan <me@yhndnzj.com>
Wed, 18 Oct 2023 16:12:27 +0000 (00:12 +0800)
src/systemctl/systemctl-cancel-job.c
src/systemctl/systemctl-is-active.c
src/systemctl/systemctl-is-enabled.c

index 3cf136946379d361c133f457127e673c50ef425c..e9f34c151ce3f3835c6dafbb9726f03db15fdfb5 100644 (file)
@@ -21,6 +21,8 @@ int verb_cancel(int argc, char *argv[], void *userdata) {
 
         polkit_agent_open_maybe();
 
+        r = 0;
+
         STRV_FOREACH(name, strv_skip(argv, 1)) {
                 _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
                 uint32_t id;
@@ -32,9 +34,9 @@ int verb_cancel(int argc, char *argv[], void *userdata) {
 
                 q = bus_call_method(bus, bus_systemd_mgr, "CancelJob", &error, NULL, "u", id);
                 if (q < 0) {
-                        log_error_errno(q, "Failed to cancel job %"PRIu32": %s", id, bus_error_message(&error, q));
-                        if (r == 0)
-                                r = q;
+                        log_warning_errno(q, "Failed to cancel job %"PRIu32", ignoring: %s",
+                                          id, bus_error_message(&error, q));
+                        RET_GATHER(r, q);
                 }
         }
 
index 15e366ccae227bd65259523b3c30b7db1f292df3..023869c9ac1d13af9062877dffc4530b94884668 100644 (file)
@@ -9,7 +9,7 @@
 #include "systemctl-util.h"
 #include "systemctl.h"
 
-static int check_unit_generic(int code, const UnitActiveState good_states[], int nb_states, char **args) {
+static int check_unit_generic(int code, const UnitActiveState good_states[], size_t nb_states, char **args) {
         _cleanup_strv_free_ char **names = NULL;
         UnitActiveState active_state;
         sd_bus *bus;
@@ -38,8 +38,8 @@ static int check_unit_generic(int code, const UnitActiveState good_states[], int
                 if (!arg_quiet)
                         puts(unit_active_state_to_string(active_state));
 
-                for (int i = 0; i < nb_states; ++i)
-                        if (good_states[i] == active_state) {
+                FOREACH_ARRAY(good_state, good_states, nb_states)
+                        if (active_state == *good_state) {
                                 ok = true;
                                 break;
                         }
@@ -48,12 +48,12 @@ static int check_unit_generic(int code, const UnitActiveState good_states[], int
                         not_found = false;
         }
 
-        /* We use LSB code 4 ("program or service status is unknown")
-         * when the corresponding unit file doesn't exist. */
+        /* We use LSB code 4 ("program or service status is unknown") when the corresponding unit file doesn't exist. */
         return ok ? EXIT_SUCCESS : not_found ? EXIT_PROGRAM_OR_SERVICES_STATUS_UNKNOWN : code;
 }
 
 int verb_is_active(int argc, char *argv[], void *userdata) {
+
         static const UnitActiveState states[] = {
                 UNIT_ACTIVE,
                 UNIT_RELOADING,
@@ -64,6 +64,7 @@ int verb_is_active(int argc, char *argv[], void *userdata) {
 }
 
 int verb_is_failed(int argc, char *argv[], void *userdata) {
+
         static const UnitActiveState states[] = {
                 UNIT_FAILED,
         };
index 8d791deaf1c9922227a4c1b883450935a4ac7430..01d924f8db66f40263d454606368c334e49c2fbe 100644 (file)
@@ -24,9 +24,9 @@ static int show_installation_targets_client_side(const char *name) {
         if (r < 0)
                 return log_error_errno(r, "Failed to get file links for %s: %m", name);
 
-        for (size_t i = 0; i < n_changes; i++)
-                if (changes[i].type == INSTALL_CHANGE_UNLINK)
-                        printf("  %s\n", changes[i].path);
+        FOREACH_ARRAY(c, changes, n_changes)
+                if (c->type == INSTALL_CHANGE_UNLINK)
+                        printf("  %s\n", c->path);
 
         return 0;
 }