summaryrefslogtreecommitdiffstats
path: root/src/CLI/dbus.cpp
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-02-07 23:11:00 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-02-07 23:11:00 +0100
commit4169595397ba962f230033b921964cae1629736d (patch)
tree94e0a25a1c6b32e8b2d475ba3ab02d7ba7eaf075 /src/CLI/dbus.cpp
parent8569385a9a7f679e32febafda8e8bdcfdf0fa64a (diff)
parent2ce0dac4d05ce449f4d054c4725a852a43aab428 (diff)
Merge branch 'master' into rhel6
Diffstat (limited to 'src/CLI/dbus.cpp')
-rw-r--r--src/CLI/dbus.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/CLI/dbus.cpp b/src/CLI/dbus.cpp
index ffd1157..db45cd8 100644
--- a/src/CLI/dbus.cpp
+++ b/src/CLI/dbus.cpp
@@ -142,12 +142,15 @@ map_crash_data_t call_CreateReport(const char* uuid)
return argout;
}
-report_status_t call_Report(const map_crash_data_t& report)
+report_status_t call_Report(const map_crash_data_t& report,
+ const map_map_string_t &plugins)
{
DBusMessage* msg = new_call_msg(__func__ + 5);
DBusMessageIter out_iter;
dbus_message_iter_init_append(msg, &out_iter);
store_val(&out_iter, report);
+ if (!plugins.empty())
+ store_val(&out_iter, plugins);
DBusMessage *reply = send_get_reply_and_unref(msg);
@@ -184,7 +187,6 @@ int32_t call_DeleteDebugDump(const char* uuid)
return result;
}
-#ifdef UNUSED
map_map_string_t call_GetPluginsInfo()
{
DBusMessage *msg = new_call_msg(__func__ + 5);
@@ -201,7 +203,27 @@ map_map_string_t call_GetPluginsInfo()
dbus_message_unref(reply);
return argout;
}
-#endif
+
+map_plugin_settings_t call_GetPluginSettings(const char *name)
+{
+ DBusMessage *msg = new_call_msg(__func__ + 5);
+ dbus_message_append_args(msg,
+ DBUS_TYPE_STRING, &name,
+ DBUS_TYPE_INVALID);
+
+ DBusMessage *reply = send_get_reply_and_unref(msg);
+
+ DBusMessageIter in_iter;
+ dbus_message_iter_init(reply, &in_iter);
+
+ map_string_t argout;
+ int r = load_val(&in_iter, argout);
+ 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 argout;
+}
void handle_dbus_err(bool error_flag, DBusError *err)
{