From: David Tardon Date: Wed, 2 Mar 2022 20:02:21 +0000 (+0100) Subject: systemctl: print better message if default target is masked X-Git-Tag: v254-rc1~1149 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7c78a19322962bb386f87bcaf37bf650cca1c400;p=thirdparty%2Fsystemd.git systemctl: print better message if default target is masked If the default target is masked, `systemctl get-default` prints Failed to get default target: Operation not possible due to RF-kill That's a bit too cryptic, so let's make it clear what's actually happening. Fixes #26589. --- diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 20e1ffe26f3..047a7b44240 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -2200,6 +2200,8 @@ static int method_get_default_target(sd_bus_message *message, void *userdata, sd return r; r = unit_file_get_default(m->unit_file_scope, NULL, &default_target); + if (r == -ERFKILL) + sd_bus_error_setf(error, BUS_ERROR_UNIT_MASKED, "Unit file is masked."); if (r < 0) return r; diff --git a/src/systemctl/systemctl-set-default.c b/src/systemctl/systemctl-set-default.c index c2dbf97649e..7ddba172722 100644 --- a/src/systemctl/systemctl-set-default.c +++ b/src/systemctl/systemctl-set-default.c @@ -50,6 +50,8 @@ static int determine_default(char **ret_name) { if (install_client_side()) { r = unit_file_get_default(arg_scope, arg_root, ret_name); + if (r == -ERFKILL) + return log_error_errno(r, "Failed to get default target: Unit file is masked."); if (r < 0) return log_error_errno(r, "Failed to get default target: %m"); return 0;