summaryrefslogtreecommitdiffstats
path: root/src/CLI/CLI.cpp
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2009-07-07 16:18:52 +0200
committerJiri Moskovcak <jmoskovc@redhat.com>2009-07-07 16:18:52 +0200
commitac7499b150a761c87cb39b6ed1c19eb5d4157e01 (patch)
tree7a50b736c41d7619393377700601df1db8ed5de2 /src/CLI/CLI.cpp
parent25cf8253ef4d2fd7c93f54298d2eccfdf95feb6e (diff)
downloadabrt-ac7499b150a761c87cb39b6ed1c19eb5d4157e01.tar.gz
abrt-ac7499b150a761c87cb39b6ed1c19eb5d4157e01.tar.xz
abrt-ac7499b150a761c87cb39b6ed1c19eb5d4157e01.zip
CLI: Added support for dbus
Diffstat (limited to 'src/CLI/CLI.cpp')
-rw-r--r--src/CLI/CLI.cpp43
1 files changed, 29 insertions, 14 deletions
diff --git a/src/CLI/CLI.cpp b/src/CLI/CLI.cpp
index d711c7d7..7bdc8202 100644
--- a/src/CLI/CLI.cpp
+++ b/src/CLI/CLI.cpp
@@ -1,7 +1,8 @@
+#include "ABRTException.h"
#include "ABRTSocket.h"
#include "ABRTException.h"
#include <iostream>
-
+#include <CommLayerClientDBus.h>
#include <string.h>
#define SOCKET_FILE VAR_RUN"/abrt.socket"
@@ -115,7 +116,6 @@ void print_crash_report(const map_crash_report_t& pCrashReport)
int main(int argc, char** argv)
{
- CABRTSocket ABRTSocket;
vector_crash_infos_t ci;
map_crash_report_t cr;
param_t param;
@@ -128,50 +128,65 @@ int main(int argc, char** argv)
print_usage(argv[0]);
return 1;
}
-
try
{
- ABRTSocket.Connect(SOCKET_FILE);
-
+#ifdef ENABLE_DBUS
+ DBus::Glib::BusDispatcher dispatcher;
+ /* this should bind the dispatcher with mainloop */
+ dispatcher.attach(NULL);
+ DBus::default_dispatcher = &dispatcher;
+ DBus::Connection conn = DBus::Connection::SystemBus();
+ CCommLayerClientDBus ABRTDaemon(conn, CC_DBUS_PATH, CC_DBUS_NAME);
+ if(!conn.has_name(CC_DBUS_NAME)){
+ std::cout << "Daemon is not running!" << std::endl;
+ return -1;
+ }
+#elif ENABLE_SOCKET
+ CABRTSocket ABRTDaemon;
+ ABRTDaemon.Connect(SOCKET_FILE);
+#endif
switch (param.m_Mode)
{
case GET_LIST:
- ci = ABRTSocket.GetCrashInfos();
+ ci = ABRTDaemon.GetCrashInfos();
print_crash_infos(ci, GET_LIST);
break;
case GET_LIST_FULL:
- ci = ABRTSocket.GetCrashInfos();
+ ci = ABRTDaemon.GetCrashInfos();
print_crash_infos(ci, GET_LIST_FULL);
break;
case REPORT:
- cr = ABRTSocket.CreateReport(param.m_sUUID);
+ cr = ABRTDaemon.CreateReport(param.m_sUUID);
print_crash_report(cr);
std::cout << std::endl << "Do you want to send the report? [y/n]: ";
std::flush(std::cout);
std::cin >> answer;
if (answer == "Y" || answer == "y")
{
- ABRTSocket.Report(cr);
+ ABRTDaemon.Report(cr);
}
break;
case REPORT_ALWAYS:
- cr = ABRTSocket.CreateReport(param.m_sUUID);
- ABRTSocket.Report(cr);
+ cr = ABRTDaemon.CreateReport(param.m_sUUID);
+ ABRTDaemon.Report(cr);
break;
case DELETE:
- ABRTSocket.DeleteDebugDump(param.m_sUUID);
+ ABRTDaemon.DeleteDebugDump(param.m_sUUID);
break;
default:
print_usage(argv[0]);
break;
}
+#ifdef ENABLE_DBUS
+;
+#elif ENABLE_SOCKET
+ ABRTDaemon.DisConnect();
+#endif
- ABRTSocket.DisConnect();
}
catch (CABRTException& e)
{
std::cout << e.what() << std::endl;
}
-
return 0;
}