summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-04-16 18:41:34 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-04-16 18:41:34 -0400
commit76ec966f0e33685f8331603805c0349adceea836 (patch)
treed79f2a3c3d98e5a34e19f684d1d9ef0b61cbafd2 /src
parent6e1045e538a08ec68787359820a57b8b637ade70 (diff)
tree-wide: use ERFKILL instead of ESHUTDOWN for "unit masked"
If the error code ever leaks (we print the strerror error instead of providing our own), the message for ESHUTDOWN is "Cannot send after transport endpoint shutdown", which can be misleading. In particular it suggest that some mishandling of the dbus connection occured. Let's change that to ERFKILL which has the advantage that a) it sounds implausible as actual error, b) has the connotation of disabling something manually.
Diffstat (limited to 'src')
-rw-r--r--src/core/dbus-manager.c2
-rw-r--r--src/core/transaction.c2
-rw-r--r--src/shared/install.c2
-rw-r--r--src/systemctl/systemctl.c6
-rw-r--r--src/sysv-generator/sysv-generator.c2
-rw-r--r--src/test/test-install-root.c2
6 files changed, 8 insertions, 8 deletions
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
index 2392ed6c16..0b12aae2ef 100644
--- a/src/core/dbus-manager.c
+++ b/src/core/dbus-manager.c
@@ -1610,7 +1610,7 @@ fail:
static int install_error(sd_bus_error *error, int c) {
assert(c < 0);
- if (c == -ESHUTDOWN)
+ if (c == -ERFKILL)
return sd_bus_error_setf(error, BUS_ERROR_UNIT_MASKED, "Unit file is masked.");
if (c == -EADDRNOTAVAIL)
return sd_bus_error_setf(error, BUS_ERROR_UNIT_GENERATED, "Unit file is transient or generated.");
diff --git a/src/core/transaction.c b/src/core/transaction.c
index dad387749c..d5370b2a14 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -939,7 +939,7 @@ int transaction_add_job_and_dependencies(
if (r < 0) {
/* unit masked, job type not applicable and unit not found are not considered as errors. */
log_unit_full(dep,
- IN_SET(r, -ESHUTDOWN, -EBADR, -ENOENT) ? LOG_DEBUG : LOG_WARNING,
+ IN_SET(r, -ERFKILL, -EBADR, -ENOENT) ? LOG_DEBUG : LOG_WARNING,
r, "Cannot add dependency job, ignoring: %s",
bus_error_message(e, r));
sd_bus_error_free(e);
diff --git a/src/shared/install.c b/src/shared/install.c
index 8d9f96553b..35d83dd16c 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -754,7 +754,7 @@ static int install_info_may_process(UnitFileInstallInfo *i, const LookupPaths *p
* not subject to enable/disable operations. */
if (i->type == UNIT_FILE_TYPE_MASKED)
- return -ESHUTDOWN;
+ return -ERFKILL;
if (path_is_generator(paths, i->path))
return -EADDRNOTAVAIL;
if (path_is_transient(paths, i->path))
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index 9310a0f430..4942dbb6ad 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -5272,7 +5272,7 @@ static int enable_sysv_units(const char *verb, char **args) {
continue;
j = unit_file_exists(arg_scope, &paths, name);
- if (j < 0 && !IN_SET(j, -ELOOP, -ESHUTDOWN, -EADDRNOTAVAIL))
+ if (j < 0 && !IN_SET(j, -ELOOP, -ERFKILL, -EADDRNOTAVAIL))
return log_error_errno(j, "Failed to lookup unit file state: %m");
found_native = j != 0;
@@ -5442,7 +5442,7 @@ static int enable_unit(int argc, char *argv[], void *userdata) {
else
assert_not_reached("Unknown verb");
- if (r == -ESHUTDOWN)
+ if (r == -ERFKILL)
return log_error_errno(r, "Unit file is masked.");
if (r == -EADDRNOTAVAIL)
return log_error_errno(r, "Unit file is transient or generated.");
@@ -5617,7 +5617,7 @@ static int add_dependency(int argc, char *argv[], void *userdata) {
unsigned n_changes = 0;
r = unit_file_add_dependency(arg_scope, arg_runtime, arg_root, names, target, dep, arg_force, &changes, &n_changes);
- if (r == -ESHUTDOWN)
+ if (r == -ERFKILL)
return log_error_errno(r, "Unit file is masked.");
if (r == -EADDRNOTAVAIL)
return log_error_errno(r, "Unit file is transient or generated.");
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
index 9392a3d2b5..fe4bbeeb75 100644
--- a/src/sysv-generator/sysv-generator.c
+++ b/src/sysv-generator/sysv-generator.c
@@ -807,7 +807,7 @@ static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) {
continue;
r = unit_file_exists(UNIT_FILE_SYSTEM, lp, name);
- if (r < 0 && !IN_SET(r, -ELOOP, -ESHUTDOWN, -EADDRNOTAVAIL)) {
+ if (r < 0 && !IN_SET(r, -ELOOP, -ERFKILL, -EADDRNOTAVAIL)) {
log_debug_errno(r, "Failed to detect whether %s exists, skipping: %m", name);
continue;
} else if (r != 0) {
diff --git a/src/test/test-install-root.c b/src/test/test-install-root.c
index 2138655e29..998c345a1a 100644
--- a/src/test/test-install-root.c
+++ b/src/test/test-install-root.c
@@ -80,7 +80,7 @@ static void test_basic_mask_and_enable(const char *root) {
assert_se(unit_file_get_state(UNIT_FILE_SYSTEM, root, "d.service", &state) >= 0 && state == UNIT_FILE_MASKED);
/* Enabling a masked unit should fail! */
- assert_se(unit_file_enable(UNIT_FILE_SYSTEM, false, root, STRV_MAKE("a.service"), false, &changes, &n_changes) == -ESHUTDOWN);
+ assert_se(unit_file_enable(UNIT_FILE_SYSTEM, false, root, STRV_MAKE("a.service"), false, &changes, &n_changes) == -ERFKILL);
unit_file_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;