From 755b62981c0aef4ff825f8f8465d3e38123889b3 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 1 Mar 2010 13:37:27 +0100 Subject: add reporters param to dbus call Report() This only adds the parameter, so far it is just ignored Signed-off-by: Denys Vlasenko --- src/Daemon/CommLayerServerDBus.cpp | 14 +++++++++++--- src/Gui/CCDBusBackend.py | 6 +++--- src/Gui/CCMainWindow.py | 4 ++-- 3 files changed, 16 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/Daemon/CommLayerServerDBus.cpp b/src/Daemon/CommLayerServerDBus.cpp index 47b66826..a397dd15 100644 --- a/src/Daemon/CommLayerServerDBus.cpp +++ b/src/Daemon/CommLayerServerDBus.cpp @@ -227,12 +227,11 @@ static int handle_Report(DBusMessage* call, DBusMessage* reply) map_crash_data_t argin1; r = load_val(&in_iter, argin1); - if (r == ABRT_DBUS_ERROR) + if (r != ABRT_DBUS_MORE_FIELDS) { error_msg("dbus call %s: parameter type mismatch", __func__ + 7); return -1; } - const char* comment = get_crash_data_item_content_or_NULL(argin1, FILENAME_COMMENT) ? : ""; const char* reproduce = get_crash_data_item_content_or_NULL(argin1, FILENAME_REPRODUCE) ? : ""; const char* errmsg = NULL; @@ -254,7 +253,16 @@ static int handle_Report(DBusMessage* call, DBusMessage* reply) return 0; } - /* Second parameter is optional */ + /* Second parameter: reporters to use */ + vector_string_t reporters; + r = load_val(&in_iter, reporters); + if (r == ABRT_DBUS_ERROR) + { + error_msg("dbus call %s: parameter type mismatch", __func__ + 7); + return -1; + } + + /* Third parameter is optional */ map_map_string_t user_conf_data; if (r == ABRT_DBUS_MORE_FIELDS) { diff --git a/src/Gui/CCDBusBackend.py b/src/Gui/CCDBusBackend.py index d1572236..7aa179bc 100644 --- a/src/Gui/CCDBusBackend.py +++ b/src/Gui/CCDBusBackend.py @@ -181,12 +181,12 @@ class DBusManager(gobject.GObject): # 2nd param is "force recreating of backtrace etc" self.daemon().StartJob(UUID, force, timeout=60) - def Report(self, report, reporters_settings = None): + def Report(self, report, reporters, reporters_settings = None): # map < Plguin_name vec > if reporters_settings: - self.daemon().Report(report, reporters_settings, reply_handler=self.report_done, error_handler=self.error_handler_cb, timeout=60) + self.daemon().Report(report, reporters, reporters_settings, reply_handler=self.report_done, error_handler=self.error_handler_cb, timeout=60) else: - self.daemon().Report(report, reply_handler=self.report_done, error_handler=self.error_handler_cb, timeout=60) + self.daemon().Report(report, reporters, reply_handler=self.report_done, error_handler=self.error_handler_cb, timeout=60) def DeleteDebugDump(self,UUID): return self.daemon().DeleteDebugDump(UUID) diff --git a/src/Gui/CCMainWindow.py b/src/Gui/CCMainWindow.py index 55e979b7..4a8329d8 100644 --- a/src/Gui/CCMainWindow.py +++ b/src/Gui/CCMainWindow.py @@ -314,11 +314,11 @@ class MainWindow(): self.timer = gobject.timeout_add(100, self.progress_update_cb) pluginlist = getPluginInfoList(self.ccdaemon) reporters_settings = pluginlist.getReporterPluginsSettings() - log2("Report(result,settings):") + log2("Report(result,reporters,settings):") log2(" result:%s", str(result)) # Careful, this will print reporters_settings["Password"] too log2(" settings:%s", str(reporters_settings)) - self.ccdaemon.Report(result, reporters_settings) + self.ccdaemon.Report(result, ["reporter1", "reporter2"], reporters_settings) log2("Report() returned") #self.hydrate() except Exception, ex: -- cgit