diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-09-01 02:03:41 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-09-01 02:03:41 +0200 |
commit | 706900b704eac4eb26e3e30795c2ead8b0c3e673 (patch) | |
tree | ca2047805e45ddbe36337ee139d08ba9fd5736ca | |
parent | 28708d8aa0da5ac1c568b08b1e1c951f69cd4e82 (diff) |
systemctl: fix return value of systemctl start and friends
-rw-r--r-- | src/systemctl.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/systemctl.c b/src/systemctl.c index 41aea093cd..901804a766 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -1134,7 +1134,7 @@ static int start_unit_one( if (arg_action != ACTION_SYSTEMCTL && error_is_no_service(error)) { /* There's always a fallback possible for * legacy actions. */ - r = 0; + r = -EADDRNOTAVAIL; goto finish; } @@ -1171,11 +1171,7 @@ static int start_unit_one( } } - r = 1; - - /* Returns 1 if we managed to issue the request, and 0 if we - * failed due to systemd not being around. This is then used - * as indication to try a fallback mechanism. */ + r = 0; finish: if (m) @@ -1281,12 +1277,7 @@ static int start_unit(DBusConnection *bus, char **args, unsigned n) { } else { for (i = 1; i < n; i++) if ((r = start_unit_one(bus, method, args[i], mode, &error, s)) != 0) { - - if (r > 0) - ret = r; - else - ret = translate_bus_error_to_exit_status(r, &error); - + ret = translate_bus_error_to_exit_status(r, &error); dbus_error_free(&error); } } @@ -4867,7 +4858,7 @@ static int start_with_fallback(DBusConnection *bus) { if (bus) { /* First, try systemd via D-Bus. */ - if (start_unit(bus, NULL, 0) > 0) + if (start_unit(bus, NULL, 0) >= 0) goto done; } |