summaryrefslogtreecommitdiffstats
path: root/src/Daemon/CommLayerServerDBus.cpp
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-10-09 12:57:59 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-10-09 12:57:59 +0200
commitb0d2f3c7f257be07bbf8af8e963335127ef43d65 (patch)
treeae488263112c9a81cda06066a447c7bf03180dc1 /src/Daemon/CommLayerServerDBus.cpp
parent6cc5b01813ba87e4a68ed848f91a6a3d573af0f6 (diff)
downloadabrt-b0d2f3c7f257be07bbf8af8e963335127ef43d65.tar.gz
abrt-b0d2f3c7f257be07bbf8af8e963335127ef43d65.tar.xz
abrt-b0d2f3c7f257be07bbf8af8e963335127ef43d65.zip
*: add "force" param to CreateReport dbus call. If !0, regenerates backtrace
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'src/Daemon/CommLayerServerDBus.cpp')
-rw-r--r--src/Daemon/CommLayerServerDBus.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Daemon/CommLayerServerDBus.cpp b/src/Daemon/CommLayerServerDBus.cpp
index 1085d80..35d2944 100644
--- a/src/Daemon/CommLayerServerDBus.cpp
+++ b/src/Daemon/CommLayerServerDBus.cpp
@@ -156,6 +156,13 @@ static int handle_CreateReport(DBusMessage* call, DBusMessage* reply)
dbus_message_iter_init(call, &in_iter);
const char* pUUID;
r = load_val(&in_iter, pUUID);
+ if (r != ABRT_DBUS_MORE_FIELDS)
+ {
+ error_msg("dbus call %s: parameter type mismatch", __func__ + 7);
+ return -1;
+ }
+ int32_t force;
+ r = load_val(&in_iter, force);
if (r != ABRT_DBUS_LAST_FIELD)
{
error_msg("dbus call %s: parameter type mismatch", __func__ + 7);
@@ -164,7 +171,7 @@ static int handle_CreateReport(DBusMessage* call, DBusMessage* reply)
const char* sender;
long unix_uid = get_remote_uid(call, &sender);
- if (CreateReportThread(pUUID, to_string(unix_uid).c_str(), sender) != 0)
+ if (CreateReportThread(pUUID, to_string(unix_uid).c_str(), force, sender) != 0)
return -1; /* can't create thread (err msg is already logged) */
dbus_message_append_args(reply,
@@ -189,7 +196,7 @@ static int handle_GetJobResult(DBusMessage* call, DBusMessage* reply)
}
long unix_uid = get_remote_uid(call);
- map_crash_report_t report = GetJobResult(pUUID, to_string(unix_uid).c_str());
+ map_crash_report_t report = GetJobResult(pUUID, to_string(unix_uid).c_str(), /*force:*/ 0);
DBusMessageIter out_iter;
dbus_message_iter_init_append(reply, &out_iter);