summaryrefslogtreecommitdiffstats
path: root/src/Daemon/CrashWatcher.cpp
diff options
context:
space:
mode:
authorZdenek Prikryl <zprikryl@redhat.com>2009-02-25 17:42:58 +0100
committerZdenek Prikryl <zprikryl@redhat.com>2009-02-25 17:42:58 +0100
commitb0f7c3729302bf66f96eedecb8633ed8e196f122 (patch)
treee00d494ee3762b0f3c7a5eb687b96a2f94f315d6 /src/Daemon/CrashWatcher.cpp
parentebb7e355ca60e6f4913c65b2dfa439100312e5eb (diff)
parent302ec0b154a33209e187d0993dfbdd8c8d27d365 (diff)
downloadabrt-b0f7c3729302bf66f96eedecb8633ed8e196f122.tar.gz
abrt-b0f7c3729302bf66f96eedecb8633ed8e196f122.tar.xz
abrt-b0f7c3729302bf66f96eedecb8633ed8e196f122.zip
Merge branch 'master' of git://git.fedorahosted.org/crash-catcher
Conflicts: lib/MiddleWare/CrashTypes.h
Diffstat (limited to 'src/Daemon/CrashWatcher.cpp')
-rw-r--r--src/Daemon/CrashWatcher.cpp42
1 files changed, 36 insertions, 6 deletions
diff --git a/src/Daemon/CrashWatcher.cpp b/src/Daemon/CrashWatcher.cpp
index f1b6828..787412e 100644
--- a/src/Daemon/CrashWatcher.cpp
+++ b/src/Daemon/CrashWatcher.cpp
@@ -108,6 +108,7 @@ CCrashWatcher::CCrashWatcher(const std::string& pPath,DBus::Connection &connecti
CCrashWatcher::~CCrashWatcher()
{
//delete dispatcher, connection, etc..
+ delete m_pMW;
}
dbus_vector_crash_infos_t CCrashWatcher::GetCrashInfos(const std::string &pUID)
@@ -121,11 +122,11 @@ dbus_vector_crash_infos_t CCrashWatcher::GetCrashInfos(const std::string &pUID)
return retval;
}
-dbus_vector_map_crash_infos_t CCrashWatcher::GetCrashInfosMap(const std::string &pUID)
+dbus_vector_map_crash_infos_t CCrashWatcher::GetCrashInfosMap(const std::string &pDBusSender)
{
dbus_vector_map_crash_infos_t retval;
vector_crash_infos_t crash_info;
- unsigned long unix_uid = m_pConn->sender_unix_uid(pUID.c_str());
+ unsigned long unix_uid = m_pConn->sender_unix_uid(pDBusSender.c_str());
crash_info = m_pMW->GetCrashInfos(to_string(unix_uid));
for (vector_crash_infos_t::iterator it = crash_info.begin(); it!=crash_info.end(); ++it) {
retval.push_back(it->GetMap());
@@ -133,6 +134,39 @@ dbus_vector_map_crash_infos_t CCrashWatcher::GetCrashInfosMap(const std::string
return retval;
}
+dbus_map_report_info_t CCrashWatcher::CreateReport(const std::string &pUUID,const std::string &pDBusSender)
+{
+ dbus_map_report_info_t retval;
+ unsigned long unix_uid = m_pConn->sender_unix_uid(pDBusSender.c_str());
+ std::cerr << pUUID << ":" << unix_uid << std::endl;
+ crash_context_t crashContext;
+ crash_report_t crashReport;
+ std::cerr << "Creating report" << std::endl;
+ m_pMW->CreateReport(pUUID,to_string(unix_uid),crashContext, crashReport);
+ retval = crashReport.GetMap();
+ return retval;
+}
+
+bool CCrashWatcher::Report(dbus_map_report_info_t pReport)
+{
+ crash_context_t crashContext;
+ crash_report_t crashReport;
+ //#define FIELD(X) crashReport.m_s##X = pReport[#X];
+ //crashReport.m_sUUID = pReport["UUID"];
+ //ALL_CRASH_REPORT_FIELDS;
+ //#undef FIELD
+ //for (dbus_map_report_info_t::iterator it = pReport.begin(); it!=pReport.end(); ++it) {
+ // std::cerr << it->second << std::endl;
+ //}
+ crashContext.m_sUUID = "1234";
+ crashContext.m_sUID = "12345";
+ crashContext.m_sLanAppPlugin = "CCpp";
+ crashReport.setFromMap(pReport);
+ std::cerr << crashReport.m_sPackage << std::endl;
+ m_pMW->Report(crashContext, crashReport);
+ return true;
+}
+
void CCrashWatcher::Lock()
{
int lfp = open("crashcatcher.lock",O_RDWR|O_CREAT,0640);
@@ -174,15 +208,11 @@ void CCrashWatcher::StartWatch()
/* daemon loop with glib */
void CCrashWatcher::GStartWatch()
{
- char *buff = new char[INOTIFY_BUFF_SIZE];
- int len = 0;
- int i = 0;
char action[FILENAME_MAX];
struct inotify_event *pevent;
g_io_add_watch (m_nGio, G_IO_IN, handle_event_cb, this);
//enter the event loop
g_main_run (m_nMainloop);
- delete[] buff;
}