summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-04-28 12:12:29 +0200
committerSven Eden <yamakuzure@gmx.net>2017-03-14 08:15:25 +0100
commitdcd69189e016939f4b30a810ae8cb47fda90990d (patch)
treeceb5b166c072a5bb41f4c854bcf7016a7d1be1f0
parentd13c4b0f724ceae4237d4bdd2d912ed5c92ba93f (diff)
bus-util: print correct warnings for units that fail but for which we have a NULL result only
-rw-r--r--src/libelogind/sd-bus/bus-util.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/src/libelogind/sd-bus/bus-util.c b/src/libelogind/sd-bus/bus-util.c
index a84d3381c..a30493fb4 100644
--- a/src/libelogind/sd-bus/bus-util.c
+++ b/src/libelogind/sd-bus/bus-util.c
@@ -1758,28 +1758,34 @@ static const struct {
};
static void log_job_error_with_service_result(const char* service, const char *result) {
- unsigned i;
_cleanup_free_ char *service_shell_quoted = NULL;
assert(service);
- assert(result);
service_shell_quoted = shell_maybe_quote(service);
- for (i = 0; i < ELEMENTSOF(explanations); ++i)
- if (streq(result, explanations[i].result))
- break;
+ if (!isempty(result)) {
+ unsigned i;
- if (i < ELEMENTSOF(explanations))
- log_error("Job for %s failed because %s. See \"systemctl status %s\" and \"journalctl -xe\" for details.\n",
- service,
- explanations[i].explanation,
- strna(service_shell_quoted));
- else
- log_error("Job for %s failed. See \"systemctl status %s\" and \"journalctl -xe\" for details.\n",
- service,
- strna(service_shell_quoted));
+ for (i = 0; i < ELEMENTSOF(explanations); ++i)
+ if (streq(result, explanations[i].result))
+ break;
+
+ if (i < ELEMENTSOF(explanations)) {
+ log_error("Job for %s failed because %s. See \"systemctl status %s\" and \"journalctl -xe\" for details.\n",
+ service,
+ explanations[i].explanation,
+ strna(service_shell_quoted));
+ goto finish;
+ }
+ }
+
+ log_error("Job for %s failed. See \"systemctl status %s\" and \"journalctl -xe\" for details.\n",
+ service,
+ strna(service_shell_quoted));
+
+finish:
/* For some results maybe additional explanation is required */
if (streq_ptr(result, "start-limit"))
log_info("To force a start use \"systemctl reset-failed %1$s\" followed by \"systemctl start %1$s\" again.",