From 890f62322fc8fee262e39a10428b1a2489edf267 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 11 Dec 2009 16:43:57 +0100 Subject: abrt-cli: report success/failure of reporting. closes bug 71 See https://fedorahosted.org/abrt/ticket/71 Signed-off-by: Denys Vlasenko --- src/CLI/dbus.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/CLI/dbus.cpp') 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) -- cgit