summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/applet/Applet.cpp14
-rw-r--r--src/daemon/CommLayerServer.h6
-rw-r--r--src/daemon/CommLayerServerDBus.cpp13
-rw-r--r--src/daemon/CommLayerServerDBus.h6
-rw-r--r--src/daemon/Daemon.cpp10
5 files changed, 34 insertions, 15 deletions
diff --git a/src/applet/Applet.cpp b/src/applet/Applet.cpp
index cc29fbde..4ce497cf 100644
--- a/src/applet/Applet.cpp
+++ b/src/applet/Applet.cpp
@@ -42,15 +42,25 @@ static void Crash(DBusMessage* signal)
r = load_val(&in_iter, package_name);
/* 2nd param: crash_id */
- const char* crash_id = NULL;
if (r != ABRT_DBUS_MORE_FIELDS)
{
error_msg("dbus signal %s: parameter type mismatch", __func__);
return;
}
+ const char* crash_id = NULL;
r = load_val(&in_iter, crash_id);
- /* Optional 3rd param: uid */
+ /* 3rd param: dir */
+//dir parameter is not used for now, use is planned in the future
+ if (r != ABRT_DBUS_MORE_FIELDS)
+ {
+ error_msg("dbus signal %s: parameter type mismatch", __func__);
+ return;
+ }
+ const char* dir = NULL;
+ r = load_val(&in_iter, dir);
+
+ /* Optional 4th param: uid */
const char* uid_str = NULL;
if (r == ABRT_DBUS_MORE_FIELDS)
{
diff --git a/src/daemon/CommLayerServer.h b/src/daemon/CommLayerServer.h
index c6bf71ee..6eb8b464 100644
--- a/src/daemon/CommLayerServer.h
+++ b/src/daemon/CommLayerServer.h
@@ -30,7 +30,11 @@ class CCommLayerServer {
virtual ~CCommLayerServer();
/* just stubs to be called when not implemented in specific comm layer */
- virtual void Crash(const char *package_name, const char* crash_id, const char *uid_str) {}
+ virtual void Crash(const char *package_name,
+ const char *crash_id,
+ const char *dir,
+ const char *uid_str
+ ) {}
virtual void JobDone(const char* peer) = 0;
virtual void QuotaExceed(const char* str) {}
diff --git a/src/daemon/CommLayerServerDBus.cpp b/src/daemon/CommLayerServerDBus.cpp
index e40b1093..d7c63ee5 100644
--- a/src/daemon/CommLayerServerDBus.cpp
+++ b/src/daemon/CommLayerServerDBus.cpp
@@ -55,26 +55,29 @@ static void send_flush_and_unref(DBusMessage* msg)
/* Notify the clients (UI) about a new crash */
void CCommLayerServerDBus::Crash(const char *package_name,
- const char* crash_id,
- const char *uid_str)
-{
+ const char *crash_id,
+ const char *dir,
+ const char *uid_str
+) {
DBusMessage* msg = new_signal_msg("Crash");
if (uid_str)
{
dbus_message_append_args(msg,
DBUS_TYPE_STRING, &package_name,
DBUS_TYPE_STRING, &crash_id,
+ DBUS_TYPE_STRING, &dir,
DBUS_TYPE_STRING, &uid_str,
DBUS_TYPE_INVALID);
- VERB2 log("Sending signal Crash('%s','%s','%s')", package_name, crash_id, uid_str);
+ VERB2 log("Sending signal Crash('%s','%s','%s','%s')", package_name, crash_id, dir, uid_str);
}
else
{
dbus_message_append_args(msg,
DBUS_TYPE_STRING, &package_name,
DBUS_TYPE_STRING, &crash_id,
+ DBUS_TYPE_STRING, &dir,
DBUS_TYPE_INVALID);
- VERB2 log("Sending signal Crash('%s','%s')", package_name, crash_id);
+ VERB2 log("Sending signal Crash('%s','%s','%s')", package_name, crash_id, dir);
}
send_flush_and_unref(msg);
}
diff --git a/src/daemon/CommLayerServerDBus.h b/src/daemon/CommLayerServerDBus.h
index 7ccad083..df767436 100644
--- a/src/daemon/CommLayerServerDBus.h
+++ b/src/daemon/CommLayerServerDBus.h
@@ -30,8 +30,10 @@ class CCommLayerServerDBus
/* DBus signal senders */
virtual void Crash(const char *package_name,
- const char *crash_id,
- const char *uid_str);
+ const char *crash_id,
+ const char *dir,
+ const char *uid_str
+ );
virtual void JobDone(const char* peer);
virtual void QuotaExceed(const char* str);
diff --git a/src/daemon/Daemon.cpp b/src/daemon/Daemon.cpp
index 929fcd0b..ffc60a8f 100644
--- a/src/daemon/Daemon.cpp
+++ b/src/daemon/Daemon.cpp
@@ -74,7 +74,7 @@ using namespace std;
* - SetSettings(map_abrt_settings_t): returns void
*
* DBus signals we emit:
- * - Crash(progname, crash_id, uid) - a new crash occurred (new /var/spool/abrt/DIR is found)
+ * - Crash(progname, crash_id, dir, uid) - a new crash occurred (new /var/spool/abrt/DIR is found)
* - JobDone(client_dbus_ID) - see StartJob above.
* Sent as unicast to the client which did StartJob.
* - Warning(msg)
@@ -663,7 +663,6 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
strrchr(first, '/') + 1);
delete_debug_dump_dir(fullname);
}
-#define fullname fullname_should_not_be_used_here
const char *analyzer = get_crash_data_item_content(crashinfo, FILENAME_ANALYZER).c_str();
const char *uid_str = get_crash_data_item_content(crashinfo, CD_UID).c_str();
@@ -676,11 +675,12 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
get_crash_data_item_content(crashinfo, CD_UUID).c_str()
);
g_pCommLayer->Crash(get_crash_data_item_content(crashinfo, FILENAME_PACKAGE).c_str(),
- crash_id,
- uid_str);
+ crash_id,
+ fullname,
+ uid_str
+ );
free(crash_id);
break;
-#undef fullname
}
case MW_IN_DB:
log("Huh, this crash is already in db?! Nothing to do");