summaryrefslogtreecommitdiffstats
path: root/lib/Plugins/Python.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Plugins/Python.cpp')
-rw-r--r--lib/Plugins/Python.cpp72
1 files changed, 25 insertions, 47 deletions
diff --git a/lib/Plugins/Python.cpp b/lib/Plugins/Python.cpp
index dcf78fa..f58a6c9 100644
--- a/lib/Plugins/Python.cpp
+++ b/lib/Plugins/Python.cpp
@@ -1,54 +1,25 @@
#include "Python.h"
#include "DebugDump.h"
-#include <sstream>
-#include <iomanip>
-#include <nss.h>
-#include <sechash.h>
-#include <prinit.h>
+#include <fstream>
+#include "ABRTException.h"
#define FILENAME_BACKTRACE "backtrace"
+#define PYHOOK_CONFIG "/etc/abrt/pyhook.conf"
-std::string CAnalyzerPython::CreateHash(const std::string& pInput)
-{
- std::string ret = "";
- HASHContext* hc;
- unsigned char hash[SHA1_LENGTH];
- unsigned int len;
-
- hc = HASH_Create(HASH_AlgSHA1);
- if (!hc)
- {
- throw std::string("CAnalyzerPython::CreateHash(): cannot initialize hash.");
- }
- HASH_Begin(hc);
- HASH_Update(hc, reinterpret_cast<const unsigned char*>(pInput.c_str()), pInput.length());
- HASH_End(hc, hash, &len, sizeof(hash));
- HASH_Destroy(hc);
-
- unsigned int ii;
- std::stringstream ss;
- for (ii = 0; ii < len; ii++)
- ss << std::setw(2) << std::setfill('0') << std::hex << (hash[ii]&0xff);
-
- return ss.str();
-}
-
-std::string CAnalyzerPython::GetLocalUUID(const std::string& pDebugDumpDir)
+std::string CAnalyzerPython::CreateHash(const std::string& pDebugDumpDir)
{
+ std::string uuid;
CDebugDump dd;
- std::string executable;
- std::string package;
- std::string backtrace;
dd.Open(pDebugDumpDir);
- dd.LoadText(FILENAME_EXECUTABLE, executable);
- dd.LoadText(FILENAME_PACKAGE, package);
- dd.LoadText(FILENAME_BACKTRACE, backtrace);
+ dd.LoadText("uuid", uuid);
dd.Close();
+ return uuid;
+}
- // TODO: get independent backtrace
-
- return CreateHash(package + executable + backtrace );
+std::string CAnalyzerPython::GetLocalUUID(const std::string& pDebugDumpDir)
+{
+ return CreateHash(pDebugDumpDir);
}
std::string CAnalyzerPython::GetGlobalUUID(const std::string& pDebugDumpDir)
{
@@ -57,16 +28,23 @@ std::string CAnalyzerPython::GetGlobalUUID(const std::string& pDebugDumpDir)
void CAnalyzerPython::Init()
{
- // TODO: Copy abrt exception handler to proper place
- if (NSS_NoDB_Init(NULL) != SECSuccess)
- {
- throw std::string("CAnalyzerPython::Init(): cannot initialize NSS library.");
- }
+ std::ofstream fOutPySiteCustomize;
+ fOutPySiteCustomize.open(PYHOOK_CONFIG);
+ if (fOutPySiteCustomize.is_open())
+ {
+ fOutPySiteCustomize << "enabled = yes" << std::endl;
+ fOutPySiteCustomize.close();
+ }
}
-
void CAnalyzerPython::DeInit()
{
// TODO: remove copied abrt exception handler
- NSS_Shutdown();
+ std::ofstream fOutPySiteCustomize;
+ fOutPySiteCustomize.open(PYHOOK_CONFIG);
+ if (fOutPySiteCustomize.is_open())
+ {
+ fOutPySiteCustomize << "enabled = no" << std::endl;
+ fOutPySiteCustomize.close();
+ }
}