summaryrefslogtreecommitdiffstats
path: root/lib/MiddleWare
diff options
context:
space:
mode:
authorZdenek Prikryl <zprikryl@redhat.com>2009-02-18 17:23:26 +0100
committerZdenek Prikryl <zprikryl@redhat.com>2009-02-18 17:23:26 +0100
commit1b1d9e234abb9cbba7f722d32e7a0eb9dfe267d1 (patch)
tree04c88efe2655ec97b9b66a916538eed461efcb93 /lib/MiddleWare
parente43c8c787e7b3eb189e3dab8f8ca11958b23e054 (diff)
new logic of getting package name
Diffstat (limited to 'lib/MiddleWare')
-rw-r--r--lib/MiddleWare/CrashCatcher.conf2
-rw-r--r--lib/MiddleWare/Makefile.am3
-rw-r--r--lib/MiddleWare/MiddleWare.cpp20
-rw-r--r--lib/MiddleWare/MiddleWare.h4
4 files changed, 24 insertions, 5 deletions
diff --git a/lib/MiddleWare/CrashCatcher.conf b/lib/MiddleWare/CrashCatcher.conf
index e865ebe..6684d37 100644
--- a/lib/MiddleWare/CrashCatcher.conf
+++ b/lib/MiddleWare/CrashCatcher.conf
@@ -1,4 +1,6 @@
# test conf file. it will be generated in the future
+# GPG keys
+OpenGPGPublicKeys = /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
# blacklisted packages
BlackList = bash, bind, apache2
# enabled plugins
diff --git a/lib/MiddleWare/Makefile.am b/lib/MiddleWare/Makefile.am
index 2b63f85..cb4de94 100644
--- a/lib/MiddleWare/Makefile.am
+++ b/lib/MiddleWare/Makefile.am
@@ -2,7 +2,8 @@ lib_LTLIBRARIES = libMiddleWare.la
libMiddleWare_la_SOURCES = MiddleWare.cpp MiddleWare.h PluginManager.cpp \
PluginManager.h CrashCatcherPlugin.cpp \
CrashCatcherPlugin.h DynamicLibrary.cpp \
- DynamicLibrary.h Settings.h Settings.cpp
+ DynamicLibrary.h Settings.h Settings.cpp \
+ RPMInfo.cpp RPMInfo.h
libMiddleWare_la_LIBADD = $(DL_LIBS) ../Utils/libUtils.la
libMiddleWare_la_LDFLAGS = -version-info 0:1:0
libMiddleWare_la_CPPFLAGS = -I$(srcdir)/../Utils
diff --git a/lib/MiddleWare/MiddleWare.cpp b/lib/MiddleWare/MiddleWare.cpp
index 2f86c00..9bb2f9d 100644
--- a/lib/MiddleWare/MiddleWare.cpp
+++ b/lib/MiddleWare/MiddleWare.cpp
@@ -61,6 +61,15 @@ void CMiddleWare::LoadSettings(const std::string& pPath)
{
parse_settings(settings["EnabledPlugins"], m_setEnabledPlugins);
}
+ if (settings.find("OpenGPGPublicKeys") != settings.end())
+ {
+ parse_settings(settings["OpenGPGPublicKeys"], m_setOpenGPGKeys);
+ set_opengpg_keys_t::iterator it_k;
+ for (it_k = m_setOpenGPGKeys.begin(); it_k != m_setOpenGPGKeys.end(); it_k++)
+ {
+ m_RPMInfo.LoadOpenGPGPublicKey(*it_k);
+ }
+ }
if (settings.find("Database") != settings.end())
{
m_sDatabase = settings["Database"];
@@ -225,15 +234,17 @@ int CMiddleWare::SaveDebugDump(const std::string& pDebugDumpDir, crash_info_t& p
CDebugDump dd;
dd.Open(pDebugDumpDir);
- dd.LoadText(FILENAME_PACKAGE, package);
- dd.LoadText(FILENAME_TIME, time);
+ dd.LoadText(FILENAME_EXECUTABLE, executable);
+ package = m_RPMInfo.GetPackage(executable);
if (package == "" ||
- m_setBlackList.find(package.substr(0, package.find("-"))) != m_setBlackList.end())
+ !m_RPMInfo.CheckFingerprint(package) || !m_RPMInfo.CheckHash(package, executable) ||
+ (m_setBlackList.find(package.substr(0, package.find("-"))) != m_setBlackList.end()))
{
dd.Delete(pDebugDumpDir);
return 0;
}
+ dd.SaveText(FILENAME_PACKAGE, package);
if (dd.Exist(FILENAME_APPLICATION))
{
@@ -252,8 +263,8 @@ int CMiddleWare::SaveDebugDump(const std::string& pDebugDumpDir, crash_info_t& p
throw std::string("CMiddleWare::SaveDebugDumpToDataBase(): Wrong UUID.");
}
+ dd.LoadText(FILENAME_TIME, time);
dd.LoadText(FILENAME_UID, UID);
- dd.LoadText(FILENAME_EXECUTABLE, executable);
database_row_t row;
database->Connect();
@@ -300,6 +311,7 @@ vector_crash_infos_t CMiddleWare::GetCrashInfos(const std::string& pUID)
info.m_sUUID = rows[ii].m_sUUID;
info.m_sUID = rows[ii].m_sUID;
info.m_sCount = rows[ii].m_sCount;
+ info.m_sTime = rows[ii].m_sTime;
dd.Open(rows[ii].m_sDebugDumpDir);
dd.LoadText(FILENAME_EXECUTABLE, data);
diff --git a/lib/MiddleWare/MiddleWare.h b/lib/MiddleWare/MiddleWare.h
index ed94f8b..61f46aa 100644
--- a/lib/MiddleWare/MiddleWare.h
+++ b/lib/MiddleWare/MiddleWare.h
@@ -27,6 +27,7 @@
#include "PluginManager.h"
#include "CrashTypes.h"
#include "MiddleWareTypes.h"
+#include "RPMInfo.h"
class CMiddleWare
{
@@ -34,11 +35,14 @@ class CMiddleWare
typedef set_strings_t set_blacklist_t;
typedef set_strings_t set_enabled_plugins_t;
typedef set_strings_t set_reporters_t;
+ typedef set_strings_t set_opengpg_keys_t;
typedef std::map<std::string, set_reporters_t> map_plugin2reporters_t;
CPluginManager* m_pPluginManager;
+ CRPMInfo m_RPMInfo;
set_blacklist_t m_setBlackList;
set_enabled_plugins_t m_setEnabledPlugins;
+ set_opengpg_keys_t m_setOpenGPGKeys;
std::string m_sDatabase;
map_plugin2reporters_t m_mapPlugin2Reporters;