summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2009-09-21 12:53:10 +0200
committerJiri Moskovcak <jmoskovc@redhat.com>2009-09-21 12:53:10 +0200
commitbf51f658d5aff2a39f37d99893d79a667108de10 (patch)
tree463cc783892e1ba667220d63d8ed5220648203ba /lib
parent902a90a214dc7c41e11375a051cadca826c71f7b (diff)
parent317ebe45bdb9ecfdf1d44e98d84ea961bb48d111 (diff)
downloadabrt-bf51f658d5aff2a39f37d99893d79a667108de10.tar.gz
abrt-bf51f658d5aff2a39f37d99893d79a667108de10.tar.xz
abrt-bf51f658d5aff2a39f37d99893d79a667108de10.zip
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'lib')
-rw-r--r--lib/Plugins/Bugzilla.cpp1
-rw-r--r--lib/Plugins/CCpp.cpp13
-rw-r--r--lib/Plugins/FileTransfer.cpp1
-rw-r--r--lib/Plugins/Kerneloops.cpp28
-rw-r--r--lib/Plugins/Mailx.cpp5
-rw-r--r--lib/Plugins/Python.cpp3
-rw-r--r--lib/Plugins/SOSreport.cpp5
-rw-r--r--lib/Plugins/SQLite3.cpp5
-rw-r--r--lib/Plugins/TicketUploader.cpp2
-rw-r--r--lib/Utils/CrashTypesSocket.cpp1
-rw-r--r--lib/Utils/DebugDump.cpp8
-rw-r--r--lib/Utils/Observer.h1
-rw-r--r--lib/Utils/abrt_dbus.cpp4
-rw-r--r--lib/Utils/abrt_dbus.h37
14 files changed, 67 insertions, 47 deletions
diff --git a/lib/Plugins/Bugzilla.cpp b/lib/Plugins/Bugzilla.cpp
index 9c223a6..a3c70f0 100644
--- a/lib/Plugins/Bugzilla.cpp
+++ b/lib/Plugins/Bugzilla.cpp
@@ -1,6 +1,5 @@
#include <xmlrpc-c/base.hpp>
-#include <sstream>
#include "abrtlib.h"
#include "Bugzilla.h"
#include "CrashTypes.h"
diff --git a/lib/Plugins/CCpp.cpp b/lib/Plugins/CCpp.cpp
index 19b4895..3276b24 100644
--- a/lib/Plugins/CCpp.cpp
+++ b/lib/Plugins/CCpp.cpp
@@ -19,20 +19,19 @@
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "abrtlib.h"
-#include "CCpp.h"
-#include "ABRTException.h"
-#include "DebugDump.h"
-#include "CommLayerInner.h"
-#include "Polkit.h"
#include <sys/wait.h>
#include <fstream>
#include <sstream>
#include <set>
#include <iomanip>
-
#include <nss.h>
#include <sechash.h>
+#include "abrtlib.h"
+#include "CCpp.h"
+#include "ABRTException.h"
+#include "DebugDump.h"
+#include "CommLayerInner.h"
+#include "Polkit.h"
#define CORE_PATTERN_IFACE "/proc/sys/kernel/core_pattern"
#define CORE_PATTERN "|"CCPP_HOOK_PATH" "DEBUG_DUMPS_DIR" %p %s %u"
diff --git a/lib/Plugins/FileTransfer.cpp b/lib/Plugins/FileTransfer.cpp
index 9e2ee1a..9ae6501 100644
--- a/lib/Plugins/FileTransfer.cpp
+++ b/lib/Plugins/FileTransfer.cpp
@@ -23,7 +23,6 @@
#include <sstream>
#include <fstream>
#include <curl/curl.h>
-
#include "abrtlib.h"
#include "FileTransfer.h"
#include "DebugDump.h"
diff --git a/lib/Plugins/Kerneloops.cpp b/lib/Plugins/Kerneloops.cpp
index 8e34392..e01bb42 100644
--- a/lib/Plugins/Kerneloops.cpp
+++ b/lib/Plugins/Kerneloops.cpp
@@ -24,38 +24,38 @@
* Arjan van de Ven <arjan@linux.intel.com>
*/
+#include "abrtlib.h"
#include "Kerneloops.h"
#include "DebugDump.h"
#include "ABRTException.h"
#include "CommLayerInner.h"
-#include <sstream>
-
#define FILENAME_KERNELOOPS "kerneloops"
std::string CAnalyzerKerneloops::GetLocalUUID(const std::string& pDebugDumpDir)
{
- update_client(_("Getting local/global universal unique identification..."));
+ log(_("Getting local universal unique identification"));
- std::string m_sOops;
- std::stringstream m_sHash;
- CDebugDump m_pDebugDump;
- m_pDebugDump.Open(pDebugDumpDir);
- m_pDebugDump.LoadText(FILENAME_KERNELOOPS, m_sOops);
- m_pDebugDump.Close();
+ std::string oops;
+ {
+ CDebugDump dd;
+ dd.Open(pDebugDumpDir);
+ dd.LoadText(FILENAME_KERNELOOPS, oops);
+ }
/* An algorithm proposed by Donald E. Knuth in The Art Of Computer
* Programming Volume 3, under the topic of sorting and search
* chapter 6.4.
*/
- unsigned int m_nHash = static_cast<unsigned int>(m_sOops.length());
- for(std::size_t i = 0; i < m_sOops.length(); i++)
+ unsigned len = oops.length();
+ unsigned hash = len;
+ for (unsigned i = 0; i < len; i++)
{
- m_nHash = ((m_nHash << 5) ^ (m_nHash >> 27)) ^ m_sOops[i];
+ hash = ((hash << 5) ^ (hash >> 27)) ^ oops[i];
}
- m_sHash << (m_nHash & 0x7FFFFFFF);
+ hash &= 0x7FFFFFFF;
- return m_sHash.str();
+ return to_string(hash);
}
std::string CAnalyzerKerneloops::GetGlobalUUID(const std::string& pDebugDumpDir)
diff --git a/lib/Plugins/Mailx.cpp b/lib/Plugins/Mailx.cpp
index 8d00951..f7a86fd 100644
--- a/lib/Plugins/Mailx.cpp
+++ b/lib/Plugins/Mailx.cpp
@@ -20,10 +20,9 @@
*/
-#include "Mailx.h"
-#include "abrtlib.h"
#include <stdio.h>
-#include <sstream>
+#include "abrtlib.h"
+#include "Mailx.h"
#include "DebugDump.h"
#include "ABRTException.h"
#include "CommLayerInner.h"
diff --git a/lib/Plugins/Python.cpp b/lib/Plugins/Python.cpp
index 3e6926c..9be76b3 100644
--- a/lib/Plugins/Python.cpp
+++ b/lib/Plugins/Python.cpp
@@ -1,7 +1,6 @@
+#include <fstream>
#include "Python.h"
#include "DebugDump.h"
-
-#include <fstream>
#include "ABRTException.h"
#define FILENAME_BACKTRACE "backtrace"
diff --git a/lib/Plugins/SOSreport.cpp b/lib/Plugins/SOSreport.cpp
index 0e47ff8..ab6125c 100644
--- a/lib/Plugins/SOSreport.cpp
+++ b/lib/Plugins/SOSreport.cpp
@@ -18,15 +18,12 @@
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "SOSreport.h"
-
#include <stdio.h>
#include <string.h>
#include <ext/stdio_filebuf.h>
-
#include <fstream>
#include <sstream>
-
+#include "SOSreport.h"
#include "DebugDump.h"
#include "ABRTException.h"
#include "CommLayerInner.h"
diff --git a/lib/Plugins/SQLite3.cpp b/lib/Plugins/SQLite3.cpp
index 700ac91..797ed2d 100644
--- a/lib/Plugins/SQLite3.cpp
+++ b/lib/Plugins/SQLite3.cpp
@@ -20,11 +20,10 @@
*/
#include <sqlite3.h>
-#include "SQLite3.h"
#include <string>
-#include <iostream>
-#include "ABRTException.h"
#include <stdlib.h>
+#include "SQLite3.h"
+#include "ABRTException.h"
#define ABRT_TABLE_VERSION 2
diff --git a/lib/Plugins/TicketUploader.cpp b/lib/Plugins/TicketUploader.cpp
index db09b88..69243cd 100644
--- a/lib/Plugins/TicketUploader.cpp
+++ b/lib/Plugins/TicketUploader.cpp
@@ -490,5 +490,3 @@ PLUGIN_INFO(REPORTER,
"gavin@redhat.com",
"https://fedorahosted.org/abtr/wiki",
PLUGINS_LIB_DIR"/TicketUploader.GTKBuilder");
-
-
diff --git a/lib/Utils/CrashTypesSocket.cpp b/lib/Utils/CrashTypesSocket.cpp
index dbbc163..7c206de 100644
--- a/lib/Utils/CrashTypesSocket.cpp
+++ b/lib/Utils/CrashTypesSocket.cpp
@@ -21,7 +21,6 @@
#include "abrtlib.h"
#include "CrashTypesSocket.h"
-#include <sstream>
/**
* A request GET_CRASH_INFOS has the following form:
diff --git a/lib/Utils/DebugDump.cpp b/lib/Utils/DebugDump.cpp
index 03fb7c6..a36594b 100644
--- a/lib/Utils/DebugDump.cpp
+++ b/lib/Utils/DebugDump.cpp
@@ -22,7 +22,6 @@
#include <fstream>
#include <iostream>
#include <sstream>
-#include <cerrno>
#include <sys/utsname.h>
#include <magic.h>
#include "abrtlib.h"
@@ -106,7 +105,6 @@ static int GetAndSetLock(const char* pLockFile, const char* pPID)
if (errno != EEXIST)
perror_msg_and_die("Can't create lock file '%s'", pLockFile);
fd = open(pLockFile, O_RDONLY);
-log("opened O_RDONLY: '%s'", pLockFile);
if (fd < 0)
{
if (errno == ENOENT)
@@ -125,7 +123,6 @@ log("opened O_RDONLY: '%s'", pLockFile);
continue;
}
pid_buf[r] = '\0';
-log("read: '%s'", pid_buf);
if (strcmp(pid_buf, pPID) == 0)
{
log("Lock file '%s' is already locked by us", pLockFile);
@@ -143,7 +140,6 @@ log("read: '%s'", pid_buf);
/* The file may be deleted by now by other process. Ignore errors */
unlink(pLockFile);
}
-log("created O_EXCL: '%s'", pLockFile);
int len = strlen(pPID);
if (write(fd, pPID, len) != len)
@@ -331,10 +327,8 @@ void CDebugDump::SaveKernelArchitectureRelease()
void CDebugDump::SaveTime()
{
- std::stringstream ss;
time_t t = time(NULL);
- ss << t;
- SaveText(FILENAME_TIME, ss.str());
+ SaveText(FILENAME_TIME, to_string(t));
}
static void LoadTextFile(const std::string& pPath, std::string& pData)
diff --git a/lib/Utils/Observer.h b/lib/Utils/Observer.h
index 421dc0c..d6ec6f3 100644
--- a/lib/Utils/Observer.h
+++ b/lib/Utils/Observer.h
@@ -2,7 +2,6 @@
#define OBSERVER_H_
#include <string>
-#include <iostream>
#include <stdint.h>
#include "DBusCommon.h"
diff --git a/lib/Utils/abrt_dbus.cpp b/lib/Utils/abrt_dbus.cpp
index 37d6d3e..ad23d56 100644
--- a/lib/Utils/abrt_dbus.cpp
+++ b/lib/Utils/abrt_dbus.cpp
@@ -264,6 +264,10 @@ void attach_dbus_conn_to_glib_main_loop(DBusConnection* conn,
const char* object_path,
DBusHandlerResult (*message_received_func)(DBusConnection *conn, DBusMessage *msg, void* data)
) {
+ if (g_dbus_conn)
+ error_msg_and_die("Internal bug: can't connect to more than one dbus");
+ g_dbus_conn = conn;
+
//do we need this? why?
//log("dbus_connection_set_dispatch_status_function");
// dbus_connection_set_dispatch_status_function(conn,
diff --git a/lib/Utils/abrt_dbus.h b/lib/Utils/abrt_dbus.h
index 731f1c1..09063c5 100644
--- a/lib/Utils/abrt_dbus.h
+++ b/lib/Utils/abrt_dbus.h
@@ -8,8 +8,43 @@ extern DBusConnection* g_dbus_conn;
/*
* Glib integration machinery
*/
+
+/* Hook up to DBus and to glib main loop.
+ * Usage cases:
+ *
+ * - server:
+ * conn = dbus_bus_get(DBUS_BUS_SYSTEM/SESSION, &err);
+ * attach_dbus_conn_to_glib_main_loop(conn, "/some/path", handler_of_calls_to_some_path);
+ * rc = dbus_bus_request_name(conn, "server.name", DBUS_NAME_FLAG_REPLACE_EXISTING, &err);
+ *
+ * - client which does not receive signals (only makes calls and emits signals):
+ * conn = dbus_bus_get(DBUS_BUS_SYSTEM/SESSION, &err);
+ * // needed only if you need to use async dbus calls (not shown below):
+ * attach_dbus_conn_to_glib_main_loop(conn);
+ * // syncronous method call:
+ * msg = dbus_message_new_method_call("some.serv", "/path/on/serv", "optional.iface.on.serv", "method_name");
+ * reply = dbus_connection_send_with_reply_and_block(conn, msg, timeout, &err);
+ * // emitting signal:
+ * msg = dbus_message_new_signal("/path/sig/emitted/from", "iface.sig.emitted.from", "sig_name");
+ * // (note: "iface.sig.emitted.from" is not optional for signals!)
+ * dbus_message_set_destination(msg, "peer"); // optional
+ * dbus_connection_send(conn, msg, &serial); // &serial can be NULL
+ *
+ * - client which receives and processes signals:
+ * conn = dbus_bus_get(DBUS_BUS_SYSTEM/SESSION, &err);
+ * attach_dbus_conn_to_glib_main_loop(conn);
+ * dbus_connection_add_filter(conn, handle_message, NULL, NULL)
+ * dbus_bus_add_match(system_conn, "type='signal',...", &err);
+ * // signal is a dbus message which looks like this:
+ * // sender=XXX dest=YYY(or null) path=/path/sig/emitted/from interface=iface.sig.emitted.from member=sig_name
+ * // and handler_for_signals(conn,msg,opaque) will be called by glib
+ * // main loop to process received signals (and other messages
+ * // if you ask for them in dbus_bus_add_match[es], but this
+ * // would turn you into a server if you handle them too) ;]
+ */
void attach_dbus_conn_to_glib_main_loop(DBusConnection* conn,
- const char* object_path_to_register = NULL, /* NULL if you are just a client */
+ /* NULL if you are just a client */
+ const char* object_path_to_register = NULL,
/* makes sense only if you use object_path_to_register: */
DBusHandlerResult (*message_received_func)(DBusConnection *conn, DBusMessage *msg, void* data) = NULL
);