diff options
| author | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-09-21 12:53:10 +0200 |
|---|---|---|
| committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-09-21 12:53:10 +0200 |
| commit | bf51f658d5aff2a39f37d99893d79a667108de10 (patch) | |
| tree | 463cc783892e1ba667220d63d8ed5220648203ba /lib | |
| parent | 902a90a214dc7c41e11375a051cadca826c71f7b (diff) | |
| parent | 317ebe45bdb9ecfdf1d44e98d84ea961bb48d111 (diff) | |
| download | abrt-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.cpp | 1 | ||||
| -rw-r--r-- | lib/Plugins/CCpp.cpp | 13 | ||||
| -rw-r--r-- | lib/Plugins/FileTransfer.cpp | 1 | ||||
| -rw-r--r-- | lib/Plugins/Kerneloops.cpp | 28 | ||||
| -rw-r--r-- | lib/Plugins/Mailx.cpp | 5 | ||||
| -rw-r--r-- | lib/Plugins/Python.cpp | 3 | ||||
| -rw-r--r-- | lib/Plugins/SOSreport.cpp | 5 | ||||
| -rw-r--r-- | lib/Plugins/SQLite3.cpp | 5 | ||||
| -rw-r--r-- | lib/Plugins/TicketUploader.cpp | 2 | ||||
| -rw-r--r-- | lib/Utils/CrashTypesSocket.cpp | 1 | ||||
| -rw-r--r-- | lib/Utils/DebugDump.cpp | 8 | ||||
| -rw-r--r-- | lib/Utils/Observer.h | 1 | ||||
| -rw-r--r-- | lib/Utils/abrt_dbus.cpp | 4 | ||||
| -rw-r--r-- | lib/Utils/abrt_dbus.h | 37 |
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 ); |
