From 3a7d4f1ba42bddd0cbaa5e0d9482dc5bd30d803f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 9 Oct 2013 03:26:34 +0200 Subject: [PATCH] bus: fix synthetic error messages --- src/libsystemd-bus/bus-message.c | 11 ++++++++++- src/libsystemd-bus/test-bus-chat.c | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/libsystemd-bus/bus-message.c b/src/libsystemd-bus/bus-message.c index 2cf1a7a53..264a2f63f 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 f308eddbb..aefe8f1b3 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; -- 2.30.2