diff options
Diffstat (limited to 'src/CLI/dbus.cpp')
| -rw-r--r-- | src/CLI/dbus.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/CLI/dbus.cpp b/src/CLI/dbus.cpp index f25165b..b218679 100644 --- a/src/CLI/dbus.cpp +++ b/src/CLI/dbus.cpp @@ -142,7 +142,7 @@ map_crash_report_t call_CreateReport(const char* uuid) return argout; } -void call_Report(const map_crash_report_t& report) +report_status_t call_Report(const map_crash_report_t& report) { DBusMessage* msg = new_call_msg(__func__ + 5); DBusMessageIter out_iter; @@ -150,10 +150,17 @@ void call_Report(const map_crash_report_t& report) store_val(&out_iter, report); DBusMessage *reply = send_get_reply_and_unref(msg); - //it returns a single value of report_status_t type, - //but we don't use it (yet?) + + DBusMessageIter in_iter; + dbus_message_iter_init(reply, &in_iter); + + report_status_t result; + int r = load_val(&in_iter, result); + if (r != ABRT_DBUS_LAST_FIELD) /* more values present, or bad type */ + error_msg_and_die("dbus call %s: return type mismatch", __func__ + 5); dbus_message_unref(reply); + return result; } int32_t call_DeleteDebugDump(const char* uuid) |
