]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: do not print hint about -M if -M is already used 21229/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 4 Nov 2021 09:41:47 +0000 (10:41 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 4 Nov 2021 10:00:54 +0000 (11:00 +0100)
(Or when -H is used, since -H and -M are incompatible.)

Note that the slightly unusual form with separate boolean variables (hint_vars,
hint_addr) instead of e.g. a const char* variable to hold the message, because this
way we don't trigger the warning about non-literal format.

17 files changed:
src/analyze/analyze.c
src/busctl/busctl.c
src/cgls/cgls.c
src/home/homectl.c
src/hostname/hostnamectl.c
src/locale/localectl.c
src/login/inhibit.c
src/login/loginctl.c
src/machine/machinectl.c
src/mount/mount-tool.c
src/portable/portablectl.c
src/run/run.c
src/shared/bus-util.c
src/shared/bus-util.h
src/shared/cgroup-show.c
src/systemctl/systemctl-util.c
src/timedate/timedatectl.c

index c6a0f8efc36c6d5e2d1e9e8ab1c487f07203f61d..f3b103a5bc3d4a72970d56f6f2fc1059d9fc0211 100644 (file)
@@ -639,7 +639,7 @@ static int analyze_plot(int argc, char *argv[], void *userdata) {
 
         r = acquire_bus(&bus, &use_full_bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         n = acquire_boot_times(bus, &boot);
         if (n < 0)
@@ -1034,7 +1034,7 @@ static int analyze_critical_chain(int argc, char *argv[], void *userdata) {
 
         r = acquire_bus(&bus, NULL);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         n = acquire_time_data(bus, &times);
         if (n <= 0)
@@ -1076,7 +1076,7 @@ static int analyze_blame(int argc, char *argv[], void *userdata) {
 
         r = acquire_bus(&bus, NULL);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         n = acquire_time_data(bus, &times);
         if (n <= 0)
@@ -1133,7 +1133,7 @@ static int analyze_time(int argc, char *argv[], void *userdata) {
 
         r = acquire_bus(&bus, NULL);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         r = pretty_boot_time(bus, &buf);
         if (r < 0)
@@ -1270,7 +1270,7 @@ static int dot(int argc, char *argv[], void *userdata) {
 
         r = acquire_bus(&bus, NULL);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         r = expand_patterns(bus, strv_skip(argv, 1), &expanded_patterns);
         if (r < 0)
@@ -1347,7 +1347,7 @@ static int dump(int argc, char *argv[], void *userdata) {
 
         r = acquire_bus(&bus, NULL);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         (void) pager_open(arg_pager_flags);
 
@@ -1416,7 +1416,7 @@ static int verb_log_control(int argc, char *argv[], void *userdata) {
 
         r = acquire_bus(&bus, NULL);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         return verb_log_control_common(bus, "org.freedesktop.systemd1", argv[0], argc == 2 ? argv[1] : NULL);
 }
@@ -2228,7 +2228,7 @@ static int service_watchdogs(int argc, char *argv[], void *userdata) {
 
         r = acquire_bus(&bus, NULL);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         if (argc == 1) {
                 /* get ServiceWatchdogs */
@@ -2268,7 +2268,7 @@ static int do_security(int argc, char *argv[], void *userdata) {
 
         r = acquire_bus(&bus, NULL);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         (void) pager_open(arg_pager_flags);
 
index 2dbef89e4c798dab7258a2830308d57b43b29af2..b5cd9749ccd4b92fbf0d19cbea63987147b008f6 100644 (file)
@@ -102,7 +102,7 @@ static int acquire_bus(bool set_monitor, sd_bus **ret) {
 
         if (arg_address)
                 r = sd_bus_set_address(bus, arg_address);
-        else {
+        else
                 switch (arg_transport) {
 
                 case BUS_TRANSPORT_LOCAL:
@@ -123,13 +123,13 @@ static int acquire_bus(bool set_monitor, sd_bus **ret) {
                 default:
                         assert_not_reached();
                 }
-        }
+
         if (r < 0)
                 return bus_log_address_error(r, arg_transport);
 
         r = sd_bus_start(bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         *ret = TAKE_PTR(bus);
 
index e2c746f7e7d922a4d0b3ba2604fe6b8b3d91fc4d..487c90823e592c0fac62e775f55c330c3f229edb 100644 (file)
@@ -216,7 +216,7 @@ static int run(int argc, char *argv[]) {
                                                                           arg_show_unit == SHOW_UNIT_USER,
                                                                           &bus);
                                         if (r < 0)
-                                                return bus_log_connect_error(r);
+                                                return bus_log_connect_error(r, BUS_TRANSPORT_LOCAL);
                                 }
 
                                 q = show_cgroup_get_unit_path_and_warn(bus, *name, &cgroup);
index 4f1aebfe307cbd77db47767a73c421987ff194bd..d3605cf308888abec9e32a42a8b8f01d3366cb9c 100644 (file)
@@ -104,7 +104,7 @@ static int acquire_bus(sd_bus **bus) {
 
         r = bus_connect_transport(arg_transport, arg_host, false, bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         (void) sd_bus_set_allow_interactive_authorization(*bus, arg_ask_password);
 
index bc780701314e13f3b4b298c1dd1208013d679aea..26869a8d71e788f657e0dd99681708c1448acb72 100644 (file)
@@ -660,7 +660,7 @@ static int run(int argc, char *argv[]) {
 
         r = bus_connect_transport(arg_transport, arg_host, false, &bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         return hostnamectl_main(bus, argc, argv);
 }
index 7e63976dfc4264134e7237a7011de70c21129ab2..bc4e37da3126d96fc03c8c55d6950495834e49b1 100644 (file)
@@ -512,7 +512,7 @@ static int run(int argc, char *argv[]) {
 
         r = bus_connect_transport(arg_transport, arg_host, false, &bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         return localectl_main(bus, argc, argv);
 }
index ff5a5d06f516cf76f0177bd0029e737e4e4bd2b7..49aaf68c4d4d1b3e988334d91796df26e29aa29f 100644 (file)
@@ -283,7 +283,7 @@ static int run(int argc, char *argv[]) {
 
         r = sd_bus_default_system(&bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, BUS_TRANSPORT_LOCAL);
 
         if (arg_action == ACTION_LIST)
                 return print_inhibitors(bus);
index 846a31012eba036d47af7b6151becbbfaf568e67..46e7652ecba89083736dfe39319d950e52d68007 100644 (file)
@@ -1468,7 +1468,7 @@ static int run(int argc, char *argv[]) {
 
         r = bus_connect_transport(arg_transport, arg_host, false, &bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         (void) sd_bus_set_allow_interactive_authorization(bus, arg_ask_password);
 
index d18374dda02f95e558ac2cf62a67895c244f9957..73eb9056ff5b6e695e12a66745fb5051dbcdb880 100644 (file)
@@ -2869,7 +2869,7 @@ static int run(int argc, char *argv[]) {
 
         r = bus_connect_transport(arg_transport, arg_host, false, &bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         (void) sd_bus_set_allow_interactive_authorization(bus, arg_ask_password);
 
index d8034202dc0e0b11b9522e0375168167e0024c0f..1ce9756f314a232e466fe4e4c923c05f346c3dd6 100644 (file)
@@ -1458,7 +1458,7 @@ static int run(int argc, char* argv[]) {
 
         r = bus_connect_transport_systemd(arg_transport, arg_host, arg_user, &bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         if (arg_action == ACTION_UMOUNT)
                 return action_umount(bus, argc, argv);
index ec625161a4594b750bd80001475aa59c3c640a6a..e601ee5d8ff77b746c6ec70cf01e95cb0d06bc08 100644 (file)
@@ -220,7 +220,7 @@ static int acquire_bus(sd_bus **bus) {
 
         r = bus_connect_transport(arg_transport, arg_host, false, bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         (void) sd_bus_set_allow_interactive_authorization(*bus, arg_ask_password);
 
index bf2bd29bc0127d67c3da4d91a3ef65fbef0e4c03..42c4e1b46b53323a054877129f103f8094c68434 100644 (file)
@@ -1760,7 +1760,7 @@ static int run(int argc, char* argv[]) {
         else
                 r = bus_connect_transport_systemd(arg_transport, arg_host, arg_user, &bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         if (arg_scope)
                 r = start_transient_scope(bus);
index 8568135a4a5273793832a8f320147a99ff3055bb..4a2b7684bce5bc4589bef13122ad4eed078e16c9 100644 (file)
@@ -42,11 +42,14 @@ int bus_log_address_error(int r, BusTransport transport) {
                                       "Failed to set bus address: %m");
 }
 
-int bus_log_connect_error(int r) {
+int bus_log_connect_error(int r, BusTransport transport) {
+        bool hint_vars = transport == BUS_TRANSPORT_LOCAL && r == -ENOMEDIUM,
+             hint_addr = transport == BUS_TRANSPORT_LOCAL && ERRNO_IS_PRIVILEGE(r);
+
         return log_error_errno(r,
-                               r == -ENOMEDIUM       ? "Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)" :
-                               ERRNO_IS_PRIVILEGE(r) ? "Failed to connect to bus: Operation not permitted (consider using --machine=<user>@.host --user to connect to bus of other user)" :
-                                                       "Failed to connect to bus: %m");
+                               r == hint_vars ? "Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)" :
+                               r == hint_addr ? "Failed to connect to bus: Operation not permitted (consider using --machine=<user>@.host --user to connect to bus of other user)" :
+                                                "Failed to connect to bus: %m");
 }
 
 int bus_async_unregister_and_exit(sd_event *e, sd_bus *bus, const char *name) {
index 4f0d186f952d6679781d79171a672a83d471d6b5..00514e359f85611be024209f57514b209e36d7a8 100644 (file)
@@ -40,7 +40,7 @@ int bus_connect_transport(BusTransport transport, const char *host, bool user, s
 int bus_connect_transport_systemd(BusTransport transport, const char *host, bool user, sd_bus **bus);
 
 int bus_log_address_error(int r, BusTransport transport);
-int bus_log_connect_error(int r);
+int bus_log_connect_error(int r, BusTransport transport);
 
 #define bus_log_parse_error(r)                                  \
         log_error_errno(r, "Failed to parse bus message: %m")
index c3eaf5387feae6c9126480aaaf14a6398eaa8ef1..40bc2bff0515114a94934a3f17463c7328e83afd 100644 (file)
@@ -447,7 +447,7 @@ int show_cgroup_get_path_and_warn(
 
                 r = bus_connect_transport_systemd(BUS_TRANSPORT_LOCAL, NULL, false, &bus);
                 if (r < 0)
-                        return bus_log_connect_error(r);
+                        return bus_log_connect_error(r, BUS_TRANSPORT_LOCAL);
 
                 r = show_cgroup_get_unit_path_and_warn(bus, unit, &root);
                 if (r < 0)
index d0c514e46763abf74372bbc2406caad9a89287a5..ae02af280e8b6deb0d7734fc388ebf696b9b76d5 100644 (file)
@@ -53,7 +53,7 @@ int acquire_bus(BusFocus focus, sd_bus **ret) {
                 else
                         r = bus_connect_transport(arg_transport, arg_host, user, &buses[focus]);
                 if (r < 0)
-                        return bus_log_connect_error(r);
+                        return bus_log_connect_error(r, arg_transport);
 
                 (void) sd_bus_set_allow_interactive_authorization(buses[focus], arg_ask_password);
         }
index d9767ba56493c2d585bbda58da69d72536ecc1f8..ebe4b5962018a15da19539bd9350f9c8ff541f22 100644 (file)
@@ -1038,7 +1038,7 @@ static int run(int argc, char *argv[]) {
 
         r = bus_connect_transport(arg_transport, arg_host, false, &bus);
         if (r < 0)
-                return bus_log_connect_error(r);
+                return bus_log_connect_error(r, arg_transport);
 
         return timedatectl_main(bus, argc, argv);
 }