diff options
| author | Zdenek Prikryl <zprikryl@redhat.com> | 2009-02-18 17:23:26 +0100 |
|---|---|---|
| committer | Zdenek Prikryl <zprikryl@redhat.com> | 2009-02-18 17:23:26 +0100 |
| commit | 1b1d9e234abb9cbba7f722d32e7a0eb9dfe267d1 (patch) | |
| tree | 04c88efe2655ec97b9b66a916538eed461efcb93 /lib/MiddleWare | |
| parent | e43c8c787e7b3eb189e3dab8f8ca11958b23e054 (diff) | |
new logic of getting package name
Diffstat (limited to 'lib/MiddleWare')
| -rw-r--r-- | lib/MiddleWare/CrashCatcher.conf | 2 | ||||
| -rw-r--r-- | lib/MiddleWare/Makefile.am | 3 | ||||
| -rw-r--r-- | lib/MiddleWare/MiddleWare.cpp | 20 | ||||
| -rw-r--r-- | lib/MiddleWare/MiddleWare.h | 4 |
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; |
