]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dbus-wait-for-jobs: change 'quiet' flag to enum
authorMatteo Croce <teknoraver@meta.com>
Thu, 14 Dec 2023 14:22:14 +0000 (15:22 +0100)
committerMatteo Croce <teknoraver@meta.com>
Tue, 19 Dec 2023 12:52:41 +0000 (04:52 -0800)
Change the 'quiet' flag to `bus_wait_for_jobs()` to an enum, so we can
select with more granularity the type of information logged.

src/firstboot/firstboot.c
src/mount/mount-tool.c
src/network/networkctl.c
src/nspawn/nspawn-register.c
src/run/run.c
src/shared/bus-wait-for-jobs.c
src/shared/bus-wait-for-jobs.h
src/shared/tests.c
src/systemctl/systemctl-start-unit.c
src/test/test-mempress.c

index 129b73c80c56a89ed98bd85715de9e8a54fe23c5..5dd7bdb1e7ac0caa5e71dd80fc7ed42966a8b479 100644 (file)
@@ -1622,7 +1622,7 @@ static int reload_vconsole(sd_bus **bus) {
         if (r < 0)
                 return bus_log_parse_error(r);
 
-        r = bus_wait_for_jobs_one(w, object, false, NULL);
+        r = bus_wait_for_jobs_one(w, object, BUS_WAIT_JOBS_LOG_ERROR, NULL);
         if (r < 0)
                 return log_error_errno(r, "Failed to wait for systemd-vconsole-setup.service/restart: %m");
         return 0;
index f626f07af63ad662a831aa9d4ee4f746f8fda3ee..2c276ef22a4f2b54e7aaa3d5909dc9053781b936 100644 (file)
@@ -665,7 +665,7 @@ static int start_transient_mount(
                 if (r < 0)
                         return bus_log_parse_error(r);
 
-                r = bus_wait_for_jobs_one(w, object, arg_quiet, NULL);
+                r = bus_wait_for_jobs_one(w, object, arg_quiet ? 0 : BUS_WAIT_JOBS_LOG_ERROR, NULL);
                 if (r < 0)
                         return r;
         }
@@ -774,7 +774,7 @@ static int start_transient_automount(
                 if (r < 0)
                         return bus_log_parse_error(r);
 
-                r = bus_wait_for_jobs_one(w, object, arg_quiet, NULL);
+                r = bus_wait_for_jobs_one(w, object, arg_quiet ? 0 : BUS_WAIT_JOBS_LOG_ERROR, NULL);
                 if (r < 0)
                         return r;
         }
@@ -936,7 +936,7 @@ static int stop_mount(
                 if (r < 0)
                         return bus_log_parse_error(r);
 
-                r = bus_wait_for_jobs_one(w, object, arg_quiet, NULL);
+                r = bus_wait_for_jobs_one(w, object, arg_quiet ? 0 : BUS_WAIT_JOBS_LOG_ERROR, NULL);
                 if (r < 0)
                         return r;
         }
index f8ee3931720106e4402660388b6a6a5931ef6560..f67755005ce2f019caee7f576d971a29b3cef2dd 100644 (file)
@@ -3163,7 +3163,7 @@ static int udevd_reload(sd_bus *bus) {
         if (r < 0)
                 return bus_log_parse_error(r);
 
-        r = bus_wait_for_jobs_one(w, job_path, /* quiet = */ true, NULL);
+        r = bus_wait_for_jobs_one(w, job_path, /* flags = */ 0, NULL);
         if (r == -ENOEXEC) {
                 log_debug("systemd-udevd is not running, skipping reload.");
                 return 0;
index 66962d7ba958f37edc5646bec95543c711fff10e..27400aa4a21fba72faaea081b34b279d4b75c069 100644 (file)
@@ -368,7 +368,7 @@ int allocate_scope(
         if (r < 0)
                 return bus_log_parse_error(r);
 
-        r = bus_wait_for_jobs_one(w, object, false, NULL);
+        r = bus_wait_for_jobs_one(w, object, BUS_WAIT_JOBS_LOG_ERROR, NULL);
         if (r < 0)
                 return r;
 
index 88eca0fd6d172c1d68bc0473b65c92326ee735b5..2ffe5c147a0738b0ef3f883ab9401819dcbea2a4 100644 (file)
@@ -1381,7 +1381,7 @@ static int start_transient_service(sd_bus *bus) {
 
                 r = bus_wait_for_jobs_one(w,
                                           object,
-                                          arg_quiet,
+                                          arg_quiet ? 0 : BUS_WAIT_JOBS_LOG_ERROR,
                                           arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL);
                 if (r < 0)
                         return r;
@@ -1616,7 +1616,8 @@ static int start_transient_scope(sd_bus *bus) {
         if (r < 0)
                 return bus_log_parse_error(r);
 
-        r = bus_wait_for_jobs_one(w, object, arg_quiet, arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL);
+        r = bus_wait_for_jobs_one(w, object, arg_quiet ? 0 : BUS_WAIT_JOBS_LOG_ERROR,
+                                  arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL);
         if (r < 0)
                 return r;
 
@@ -1886,7 +1887,8 @@ static int start_transient_trigger(sd_bus *bus, const char *suffix) {
         if (r < 0)
                 return bus_log_parse_error(r);
 
-        r = bus_wait_for_jobs_one(w, object, arg_quiet, arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL);
+        r = bus_wait_for_jobs_one(w, object, arg_quiet ? 0 : BUS_WAIT_JOBS_LOG_ERROR,
+                                  arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL);
         if (r < 0)
                 return r;
 
index 969c62979f046b32eae51b3408384f3822917733..d3f33cc376a8fd9866a55c0d29efd9aa80316d2b 100644 (file)
@@ -227,12 +227,12 @@ finish:
                          service_shell_quoted ?: "<service>");
 }
 
-static int check_wait_response(BusWaitForJobs *d, bool quiet, const char* const* extra_args) {
+static int check_wait_response(BusWaitForJobs *d, WaitJobsFlags flags, const char* const* extra_args) {
         assert(d);
         assert(d->name);
         assert(d->result);
 
-        if (!quiet) {
+        if (FLAGS_SET(flags, BUS_WAIT_JOBS_LOG_ERROR)) {
                 if (streq(d->result, "canceled"))
                         log_error("Job for %s canceled.", strna(d->name));
                 else if (streq(d->result, "timeout"))
@@ -286,7 +286,7 @@ static int check_wait_response(BusWaitForJobs *d, bool quiet, const char* const*
                                "Unexpected job result, assuming server side newer than us: %s", d->result);
 }
 
-int bus_wait_for_jobs(BusWaitForJobs *d, bool quiet, const char* const* extra_args) {
+int bus_wait_for_jobs(BusWaitForJobs *d, WaitJobsFlags flags, const char* const* extra_args) {
         int r = 0;
 
         assert(d);
@@ -299,7 +299,7 @@ int bus_wait_for_jobs(BusWaitForJobs *d, bool quiet, const char* const* extra_ar
                         return log_error_errno(q, "Failed to wait for response: %m");
 
                 if (d->name && d->result) {
-                        q = check_wait_response(d, quiet, extra_args);
+                        q = check_wait_response(d, flags, extra_args);
                         /* Return the first error as it is most likely to be
                          * meaningful. */
                         if (q < 0 && r == 0)
@@ -322,12 +322,12 @@ int bus_wait_for_jobs_add(BusWaitForJobs *d, const char *path) {
         return set_put_strdup(&d->jobs, path);
 }
 
-int bus_wait_for_jobs_one(BusWaitForJobs *d, const char *path, bool quiet, const char* const* extra_args) {
+int bus_wait_for_jobs_one(BusWaitForJobs *d, const char *path, WaitJobsFlags flags, const char* const* extra_args) {
         int r;
 
         r = bus_wait_for_jobs_add(d, path);
         if (r < 0)
                 return log_oom();
 
-        return bus_wait_for_jobs(d, quiet, extra_args);
+        return bus_wait_for_jobs(d, flags, extra_args);
 }
index 5acf8b9241d0b82ab97f93b55031310feb8ba03c..7a64ad40db597b15c4bd5db53408d74fb325a306 100644 (file)
@@ -5,12 +5,16 @@
 
 #include "macro.h"
 
+typedef enum WaitJobsFlags {
+        BUS_WAIT_JOBS_LOG_ERROR   = 1 << 0,
+} WaitJobsFlags;
+
 typedef struct BusWaitForJobs BusWaitForJobs;
 
 int bus_wait_for_jobs_new(sd_bus *bus, BusWaitForJobs **ret);
 BusWaitForJobs* bus_wait_for_jobs_free(BusWaitForJobs *d);
 int bus_wait_for_jobs_add(BusWaitForJobs *d, const char *path);
-int bus_wait_for_jobs(BusWaitForJobs *d, bool quiet, const char* const* extra_args);
-int bus_wait_for_jobs_one(BusWaitForJobs *d, const char *path, bool quiet, const char* const* extra_args);
+int bus_wait_for_jobs(BusWaitForJobs *d, WaitJobsFlags flags, const char* const* extra_args);
+int bus_wait_for_jobs_one(BusWaitForJobs *d, const char *path, WaitJobsFlags flags, const char* const* extra_args);
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(BusWaitForJobs*, bus_wait_for_jobs_free);
index 3882a180c4ada07d7dbc251b422fc91b58be74e3..ecf944766dace029143db64b98ff829f0f8db775 100644 (file)
@@ -249,7 +249,7 @@ static int allocate_scope(void) {
         if (r < 0)
                 return bus_log_parse_error(r);
 
-        r = bus_wait_for_jobs_one(w, object, false, NULL);
+        r = bus_wait_for_jobs_one(w, object, BUS_WAIT_JOBS_LOG_ERROR, NULL);
         if (r < 0)
                 return r;
 
index ae7e25eedb626003d11b5780b9a3770887d37d65..cd7aac18b6861ce5b79e5b3cd936d88b6c0785d2 100644 (file)
@@ -388,8 +388,10 @@ int verb_start(int argc, char *argv[], void *userdata) {
 
         if (!arg_no_block) {
                 const char* extra_args[4];
+                WaitJobsFlags flags = 0;
 
-                r = bus_wait_for_jobs(w, arg_quiet, make_extra_args(extra_args));
+                SET_FLAG(flags, BUS_WAIT_JOBS_LOG_ERROR, !arg_quiet);
+                r = bus_wait_for_jobs(w, flags, make_extra_args(extra_args));
                 if (r < 0)
                         return r;
 
index 26ce4cee7970532fdbcf976980d52bbdbd3b60c2..23d09813d91473858d5049fe83e3fd8c179cf588 100644 (file)
@@ -220,7 +220,7 @@ TEST(real_pressure) {
 
         assert_se(sd_bus_message_read(reply, "o", &object) >= 0);
 
-        assert_se(bus_wait_for_jobs_one(w, object, /* quiet= */ false, /* extra_args= */ NULL) >= 0);
+        assert_se(bus_wait_for_jobs_one(w, object, /* flags= */ BUS_WAIT_JOBS_LOG_ERROR, /* extra_args= */ NULL) >= 0);
 
         assert_se(sd_event_default(&e) >= 0);