summaryrefslogtreecommitdiff
path: root/src/load-fragment.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-07-08 02:43:18 +0200
committerLennart Poettering <lennart@poettering.net>2010-07-08 02:43:18 +0200
commit398ef8ba0266cca453d90a90b3a2aa1caa44189f (patch)
treec2724108ae05922768b1f57acc0372bb58d955cb /src/load-fragment.c
parent2105e76a7725d6a29ebfe0af0bf23b3279e466a2 (diff)
dbus: make errors reported via D-Bus more useful
Diffstat (limited to 'src/load-fragment.c')
-rw-r--r--src/load-fragment.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/load-fragment.c b/src/load-fragment.c
index c3909e9563..d474c9a88c 100644
--- a/src/load-fragment.c
+++ b/src/load-fragment.c
@@ -39,6 +39,7 @@
#include "securebits.h"
#include "missing.h"
#include "unit-name.h"
+#include "bus-errors.h"
#define COMMENTS "#;\n"
@@ -1057,14 +1058,23 @@ static int config_parse_timer_unit(
Timer *t = data;
int r;
+ DBusError error;
+
+ assert(filename);
+ assert(lvalue);
+ assert(rvalue);
+ assert(data);
+
+ dbus_error_init(&error);
if (endswith(rvalue, ".timer")) {
log_error("[%s:%u] Unit cannot be of type timer: %s", filename, line, rvalue);
return -EINVAL;
}
- if ((r = manager_load_unit(t->meta.manager, rvalue, NULL, &t->unit)) < 0) {
- log_error("[%s:%u] Failed to load unit: %s", filename, line, rvalue);
+ if ((r = manager_load_unit(t->meta.manager, rvalue, NULL, NULL, &t->unit)) < 0) {
+ log_error("[%s:%u] Failed to load unit %s: %s", filename, line, rvalue, bus_error(&error, r));
+ dbus_error_free(&error);
return r;
}
@@ -1128,14 +1138,23 @@ static int config_parse_path_unit(
Path *t = data;
int r;
+ DBusError error;
+
+ assert(filename);
+ assert(lvalue);
+ assert(rvalue);
+ assert(data);
+
+ dbus_error_init(&error);
if (endswith(rvalue, ".path")) {
log_error("[%s:%u] Unit cannot be of type path: %s", filename, line, rvalue);
return -EINVAL;
}
- if ((r = manager_load_unit(t->meta.manager, rvalue, NULL, &t->unit)) < 0) {
- log_error("[%s:%u] Failed to load unit: %s", filename, line, rvalue);
+ if ((r = manager_load_unit(t->meta.manager, rvalue, NULL, &error, &t->unit)) < 0) {
+ log_error("[%s:%u] Failed to load unit %s: %s", filename, line, rvalue, bus_error(&error, r));
+ dbus_error_free(&error);
return r;
}