summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-10-09 03:26:34 +0200
committerLennart Poettering <lennart@poettering.net>2013-10-09 03:29:20 +0200
commit3a7d4f1ba42bddd0cbaa5e0d9482dc5bd30d803f (patch)
tree3d9550537591e2a4cb2bfe71ca86d448630f89fd
parent29ddb38fea134c6132e4f2dd608e9da3871eaebe (diff)
bus: fix synthetic error messages
-rw-r--r--src/libsystemd-bus/bus-message.c11
-rw-r--r--src/libsystemd-bus/test-bus-chat.c2
2 files changed, 11 insertions, 2 deletions
diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c
index 2cf1a7a538..264a2f63f1 100644
--- a/src/libsystemd-bus/bus-message.c
+++ b/src/libsystemd-bus/bus-message.c
@@ -682,7 +682,6 @@ fail:
return r;
}
-
int bus_message_new_synthetic_error(
sd_bus *bus,
uint64_t serial,
@@ -712,6 +711,16 @@ int bus_message_new_synthetic_error(
goto fail;
}
+ r = message_append_field_string(t, SD_BUS_MESSAGE_HEADER_ERROR_NAME, SD_BUS_TYPE_STRING, e->name, &t->error.name);
+ if (r < 0)
+ goto fail;
+
+ if (e->message) {
+ r = message_append_basic(t, SD_BUS_TYPE_STRING, e->message, (const void**) &t->error.message);
+ if (r < 0)
+ goto fail;
+ }
+
*m = t;
return 0;
diff --git a/src/libsystemd-bus/test-bus-chat.c b/src/libsystemd-bus/test-bus-chat.c
index f308eddbb0..aefe8f1b3b 100644
--- a/src/libsystemd-bus/test-bus-chat.c
+++ b/src/libsystemd-bus/test-bus-chat.c
@@ -359,7 +359,7 @@ finish:
static int quit_callback(sd_bus *b, sd_bus_message *m, void *userdata) {
bool *x = userdata;
- log_error("Quit callback: %s", strerror(bus_message_to_errno(m)));
+ log_error("Quit callback: %s", strerror(-bus_message_to_errno(m)));
*x = 1;
return 1;