summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-08-24 12:15:39 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-08-24 12:15:39 +0200
commit7c223d2142bf11cda27fd43c387cbfa66838f433 (patch)
tree47e20cecff662b11d35b12b41aa1163d1e4dc415 /src
parent0fdbc8ae884312b04309b4931d8bdf9b082de82c (diff)
downloadabrt-7c223d2142bf11cda27fd43c387cbfa66838f433.tar.gz
abrt-7c223d2142bf11cda27fd43c387cbfa66838f433.tar.xz
abrt-7c223d2142bf11cda27fd43c387cbfa66838f433.zip
convert two PluginManager member functions to non-member ones
some cleanups for previous commits included too Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'src')
-rw-r--r--src/Daemon/CommLayerServerDBus.h14
-rw-r--r--src/Daemon/CrashWatcher.cpp28
-rw-r--r--src/Daemon/Daemon.cpp40
-rw-r--r--src/Daemon/MiddleWare.cpp2
-rw-r--r--src/Daemon/PluginManager.cpp172
-rw-r--r--src/Daemon/PluginManager.h26
6 files changed, 142 insertions, 140 deletions
diff --git a/src/Daemon/CommLayerServerDBus.h b/src/Daemon/CommLayerServerDBus.h
index d241c63..fe95d5c 100644
--- a/src/Daemon/CommLayerServerDBus.h
+++ b/src/Daemon/CommLayerServerDBus.h
@@ -19,11 +19,15 @@ class CCommLayerServerDBus
CCommLayerServerDBus();
virtual ~CCommLayerServerDBus();
- virtual vector_crash_infos_t GetCrashInfos(const std::string &pSender);
+ virtual vector_crash_infos_t GetCrashInfos(const std::string& pSender);
/*FIXME: fix CLI and remove this stub*/
- virtual map_crash_report_t CreateReport(const std::string &pUUID,const std::string &pSender){map_crash_report_t retval; return retval;};
- virtual uint64_t CreateReport_t(const std::string &pUUID,const std::string &pSender);
- virtual report_status_t Report(map_crash_report_t pReport,const std::string &pSender);
+ virtual map_crash_report_t CreateReport(const std::string& pUUID, const std::string& pSender)
+ {
+ map_crash_report_t retval;
+ return retval;
+ }
+ virtual uint64_t CreateReport_t(const std::string& pUUID, const std::string& pSender);
+ virtual report_status_t Report(map_crash_report_t pReport,const std::string& pSender);
virtual bool DeleteDebugDump(const std::string& pUUID, const std::string& pSender);
virtual map_crash_report_t GetJobResult(uint64_t pJobID, const std::string& pSender);
virtual vector_map_string_string_t GetPluginsInfo();
@@ -36,7 +40,7 @@ class CCommLayerServerDBus
virtual void AnalyzeComplete(map_crash_report_t arg1);
virtual void Error(const std::string& arg1);
virtual void Update(const std::string& pDest, const std::string& pMessage);
- virtual void JobDone(const std::string &pDest, uint64_t pJobID);
+ virtual void JobDone(const std::string& pDest, uint64_t pJobID);
virtual void Warning(const std::string& pDest, const std::string& pMessage);
};
diff --git a/src/Daemon/CrashWatcher.cpp b/src/Daemon/CrashWatcher.cpp
index 3596664..89e9fe9 100644
--- a/src/Daemon/CrashWatcher.cpp
+++ b/src/Daemon/CrashWatcher.cpp
@@ -26,15 +26,15 @@ void CCrashWatcher::Status(const std::string& pMessage, const std::string& pDest
{
std::cout << "Update: " + pMessage << std::endl;
//FIXME: send updates only to job owner
- if(g_pCommLayer != NULL)
- g_pCommLayer->Update(pDest,pMessage);
+ if (g_pCommLayer != NULL)
+ g_pCommLayer->Update(pDest, pMessage);
}
void CCrashWatcher::Warning(const std::string& pMessage, const std::string& pDest)
{
std::cerr << "Warning: " + pMessage << std::endl;
- if(g_pCommLayer != NULL)
- g_pCommLayer->Warning(pDest,pMessage);
+ if (g_pCommLayer != NULL)
+ g_pCommLayer->Warning(pDest, pMessage);
}
void CCrashWatcher::Debug(const std::string& pMessage, const std::string& pDest)
@@ -59,7 +59,7 @@ vector_crash_infos_t CCrashWatcher::GetCrashInfos(const std::string &pUID)
try
{
vector_pair_string_string_t UUIDsUIDs;
- UUIDsUIDs = ::GetUUIDsOfCrash(pUID);
+ UUIDsUIDs = GetUUIDsOfCrash(pUID);
unsigned int ii;
for (ii = 0; ii < UUIDsUIDs.size(); ii++)
@@ -76,15 +76,15 @@ vector_crash_infos_t CCrashWatcher::GetCrashInfos(const std::string &pUID)
case MW_ERROR:
Warning("Can not find debug dump directory for UUID: " + UUIDsUIDs[ii].first + ", deleting from database");
Status("Can not find debug dump directory for UUID: " + UUIDsUIDs[ii].first + ", deleting from database");
- ::DeleteCrashInfo(UUIDsUIDs[ii].first, UUIDsUIDs[ii].second);
+ DeleteCrashInfo(UUIDsUIDs[ii].first, UUIDsUIDs[ii].second);
break;
case MW_FILE_ERROR:
{
std::string debugDumpDir;
Warning("Can not open file in debug dump directory for UUID: " + UUIDsUIDs[ii].first + ", deleting ");
Status("Can not open file in debug dump directory for UUID: " + UUIDsUIDs[ii].first + ", deleting ");
- debugDumpDir = ::DeleteCrashInfo(UUIDsUIDs[ii].first, UUIDsUIDs[ii].second);
- ::DeleteDebugDumpDir(debugDumpDir);
+ debugDumpDir = DeleteCrashInfo(UUIDsUIDs[ii].first, UUIDsUIDs[ii].second);
+ DeleteDebugDumpDir(debugDumpDir);
}
break;
default:
@@ -102,7 +102,7 @@ vector_crash_infos_t CCrashWatcher::GetCrashInfos(const std::string &pUID)
Status(e.what());
}
- //retval = ::GetCrashInfos(pUID);
+ //retval = GetCrashInfos(pUID);
//Notify("Sent crash info");
return retval;
}
@@ -121,7 +121,7 @@ static void *create_report(void *arg)
try
{
mw_result_t res;
- res = ::CreateCrashReport(thread_data->UUID, thread_data->UID, crashReport);
+ res = CreateCrashReport(thread_data->UUID, thread_data->UID, crashReport);
switch (res)
{
case MW_OK:
@@ -138,8 +138,8 @@ static void *create_report(void *arg)
{
std::string debugDumpDir;
g_cw->Warning(std::string("Corrupted crash with UUID ")+thread_data->UUID+", deleting.");
- debugDumpDir = ::DeleteCrashInfo(thread_data->UUID, thread_data->UID);
- ::DeleteDebugDumpDir(debugDumpDir);
+ debugDumpDir = DeleteCrashInfo(thread_data->UUID, thread_data->UID);
+ DeleteDebugDumpDir(debugDumpDir);
}
break;
}
@@ -224,8 +224,8 @@ bool CCrashWatcher::DeleteDebugDump(const std::string& pUUID, const std::string&
try
{
std::string debugDumpDir;
- debugDumpDir = ::DeleteCrashInfo(pUUID,pUID);
- ::DeleteDebugDumpDir(debugDumpDir);
+ debugDumpDir = DeleteCrashInfo(pUUID, pUID);
+ DeleteDebugDumpDir(debugDumpDir);
}
catch (CABRTException& e)
{
diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp
index d5b4b2c..5ed0f30 100644
--- a/src/Daemon/Daemon.cpp
+++ b/src/Daemon/Daemon.cpp
@@ -119,18 +119,18 @@ static gboolean cron_activation_periodic_cb(gpointer data)
{
cron_callback_data_t* cronPeriodicCallbackData = static_cast<cron_callback_data_t*>(data);
g_cw->Debug("Activating plugin: " + cronPeriodicCallbackData->m_sPluginName);
- ::RunAction(DEBUG_DUMPS_DIR,
- cronPeriodicCallbackData->m_sPluginName,
- cronPeriodicCallbackData->m_sPluginArgs);
+ RunAction(DEBUG_DUMPS_DIR,
+ cronPeriodicCallbackData->m_sPluginName,
+ cronPeriodicCallbackData->m_sPluginArgs);
return TRUE;
}
static gboolean cron_activation_one_cb(gpointer data)
{
cron_callback_data_t* cronOneCallbackData = static_cast<cron_callback_data_t*>(data);
g_cw->Debug("Activating plugin: " + cronOneCallbackData->m_sPluginName);
- ::RunAction(DEBUG_DUMPS_DIR,
- cronOneCallbackData->m_sPluginName,
- cronOneCallbackData->m_sPluginArgs);
+ RunAction(DEBUG_DUMPS_DIR,
+ cronOneCallbackData->m_sPluginName,
+ cronOneCallbackData->m_sPluginArgs);
return FALSE;
}
static gboolean cron_activation_reshedule_cb(gpointer data)
@@ -150,19 +150,19 @@ static gboolean cron_activation_reshedule_cb(gpointer data)
static void SetUpMW()
{
- ::SetOpenGPGCheck(g_pSettings->GetOpenGPGCheck());
- ::SetDatabase(g_pSettings->GetDatabase());
+ SetOpenGPGCheck(g_pSettings->GetOpenGPGCheck());
+ SetDatabase(g_pSettings->GetDatabase());
set_strings_t openGPGPublicKeys = g_pSettings->GetOpenGPGPublicKeys();
set_strings_t::iterator it_k;
for (it_k = openGPGPublicKeys.begin(); it_k != openGPGPublicKeys.end(); it_k++)
{
- ::AddOpenGPGPublicKey(*it_k);
+ AddOpenGPGPublicKey(*it_k);
}
set_strings_t blackList = g_pSettings->GetBlackList();
set_strings_t::iterator it_b;
for (it_b = blackList.begin(); it_b != blackList.end(); it_b++)
{
- ::AddBlackListedPackage(*it_b);
+ AddBlackListedPackage(*it_b);
}
set_strings_t enabledPlugins = g_pSettings->GetEnabledPlugins();
set_strings_t::iterator it_p;
@@ -174,7 +174,7 @@ static void SetUpMW()
vector_pair_strings_t::iterator it_ar;
for (it_ar = actionsAndReporters.begin(); it_ar != actionsAndReporters.end(); it_ar++)
{
- ::AddActionOrReporter((*it_ar).first, (*it_ar).second);
+ AddActionOrReporter((*it_ar).first, (*it_ar).second);
}
map_analyzer_actions_and_reporters_t analyzerActionsAndReporters = g_pSettings->GetAnalyzerActionsAndReporters();
@@ -184,7 +184,7 @@ static void SetUpMW()
vector_pair_strings_t::iterator it_ar;
for (it_ar = it_aar->second.begin(); it_ar != it_aar->second.end(); it_ar++)
{
- ::AddAnalyzerActionOrReporter(it_aar->first, (*it_ar).first, (*it_ar).second);
+ AddAnalyzerActionOrReporter(it_aar->first, (*it_ar).first, (*it_ar).second);
}
}
}
@@ -319,12 +319,12 @@ static void FindNewDumps(const std::string& pPath)
try
{
mw_result_t res;
- res = ::SaveDebugDump(*itt, crashinfo);
+ res = SaveDebugDump(*itt, crashinfo);
switch (res)
{
case MW_OK:
g_cw->Debug("Saving into database (" + *itt + ").");
- ::RunActionsAndReporters(crashinfo[CD_MWDDD][CD_CONTENT]);
+ RunActionsAndReporters(crashinfo[CD_MWDDD][CD_CONTENT]);
break;
case MW_IN_DB:
g_cw->Debug("Already saved in database (" + *itt + ").");
@@ -338,7 +338,7 @@ static void FindNewDumps(const std::string& pPath)
case MW_FILE_ERROR:
default:
g_cw->Warning("Corrupted, bad or already saved crash, deleting.");
- ::DeleteDebugDumpDir(*itt);
+ DeleteDebugDumpDir(*itt);
break;
}
}
@@ -471,12 +471,12 @@ static gboolean handle_event_cb(GIOChannel *gio, GIOCondition condition, gpointe
try
{
mw_result_t res;
- res = ::SaveDebugDump(std::string(DEBUG_DUMPS_DIR) + "/" + name, crashinfo);
+ res = SaveDebugDump(std::string(DEBUG_DUMPS_DIR) + "/" + name, crashinfo);
switch (res)
{
case MW_OK:
g_cw->Debug("New crash, saving...");
- ::RunActionsAndReporters(crashinfo[CD_MWDDD][CD_CONTENT]);
+ RunActionsAndReporters(crashinfo[CD_MWDDD][CD_CONTENT]);
/* send message to dbus */
g_pCommLayer->Crash(crashinfo[CD_PACKAGE][CD_CONTENT]);
break;
@@ -485,7 +485,7 @@ static gboolean handle_event_cb(GIOChannel *gio, GIOCondition condition, gpointe
/* send message to dbus */
g_cw->Debug("Already saved crash, deleting...");
g_pCommLayer->Crash(crashinfo[CD_PACKAGE][CD_CONTENT]);
- ::DeleteDebugDumpDir(std::string(DEBUG_DUMPS_DIR) + "/" + name);
+ DeleteDebugDumpDir(std::string(DEBUG_DUMPS_DIR) + "/" + name);
break;
case MW_BLACKLISTED:
case MW_CORRUPTED:
@@ -495,7 +495,7 @@ static gboolean handle_event_cb(GIOChannel *gio, GIOCondition condition, gpointe
case MW_FILE_ERROR:
default:
g_cw->Warning("Corrupted or bad crash, deleting...");
- ::DeleteDebugDumpDir(std::string(DEBUG_DUMPS_DIR) + "/" + name);
+ DeleteDebugDumpDir(std::string(DEBUG_DUMPS_DIR) + "/" + name);
break;
}
}
@@ -517,7 +517,7 @@ static gboolean handle_event_cb(GIOChannel *gio, GIOCondition condition, gpointe
else
{
g_cw->Debug(std::string("DebugDumps size has exceeded the limit, deleting the last dump: ") + name);
- ::DeleteDebugDumpDir(std::string(DEBUG_DUMPS_DIR) + "/" + name);
+ DeleteDebugDumpDir(std::string(DEBUG_DUMPS_DIR) + "/" + name);
}
}
else
diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp
index 9fff5b0..cb2f342 100644
--- a/src/Daemon/MiddleWare.cpp
+++ b/src/Daemon/MiddleWare.cpp
@@ -340,7 +340,7 @@ report_status_t Report(const map_crash_report_t& pCrashReport,
{
oldSettings = reporter->GetSettings();
- if (g_pPluginManager->LoadPluginSettings(home + "/.abrt/" + (*it_r).first + "." + PLUGINS_CONF_EXTENSION, newSettings))
+ if (LoadPluginSettings(home + "/.abrt/" + (*it_r).first + "." + PLUGINS_CONF_EXTENSION, newSettings))
{
reporter->SetSettings(newSettings);
}
diff --git a/src/Daemon/PluginManager.cpp b/src/Daemon/PluginManager.cpp
index de3ca9a..24fa496 100644
--- a/src/Daemon/PluginManager.cpp
+++ b/src/Daemon/PluginManager.cpp
@@ -33,7 +33,7 @@
/**
* Text representation of plugin types.
*/
-static const char* const plugin_type_str_t[] = {
+static const char* const plugin_type_str[] = {
"Analyzer",
"Action",
"Reporter",
@@ -41,6 +41,88 @@ static const char* const plugin_type_str_t[] = {
};
+bool LoadPluginSettings(const std::string& pPath, map_plugin_settings_t& pSettings)
+{
+ std::ifstream fIn;
+ fIn.open(pPath.c_str());
+ if (fIn.is_open())
+ {
+ std::string line;
+ while (!fIn.eof())
+ {
+ getline(fIn, line);
+
+ int ii;
+ bool is_value = false;
+ bool valid = false;
+ bool in_quote = false;
+ std::string key = "";
+ std::string value = "";
+ for (ii = 0; ii < line.length(); ii++)
+ {
+ if (line[ii] == '\"')
+ {
+ in_quote = in_quote == true ? false : true;
+ }
+ if (isspace(line[ii]) && !in_quote)
+ {
+ continue;
+ }
+ if (line[ii] == '#' && !in_quote && key == "")
+ {
+ break;
+ }
+ if (line[ii] == '=' && !in_quote)
+ {
+ is_value = true;
+ continue;
+ }
+ if (!is_value)
+ {
+ key += line[ii];
+ }
+ else
+ {
+ valid = true;
+ value += line[ii];
+ }
+ }
+ if (valid && !in_quote)
+ {
+ pSettings[key] = value;
+ }
+ }
+ fIn.close();
+ return true;
+ }
+ return false;
+}
+
+/**
+ * A function. It saves settings. On success it returns true, otherwise returns false.
+ * @param path A path of config file.
+ * @param settings Plugin's settings.
+ * @return if it success it returns true, otherwise it returns false.
+ */
+static bool SavePluginSettings(const std::string& pPath, const map_plugin_settings_t& pSettings)
+{
+ std::ofstream fOut;
+ fOut.open(pPath.c_str());
+ if (fOut.is_open())
+ {
+ fOut << "# Settings were written by abrt." << std::endl;
+ map_plugin_settings_t::const_iterator it;
+ for (it = pSettings.begin(); it != pSettings.end(); it++)
+ {
+ fOut << it->first << " = " << it->second << std::endl;
+ }
+ fOut.close();
+ return true;
+ }
+ return false;
+}
+
+
CPluginManager::CPluginManager()
{}
@@ -140,14 +222,14 @@ void CPluginManager::RegisterPlugin(const std::string& pName)
catch (CABRTException& e)
{
comm_layer_inner_warning("Can not initialize plugin " + pName + "("
- + std::string(plugin_type_str_t[m_mapABRTPlugins[pName]->GetType()])
+ + std::string(plugin_type_str[m_mapABRTPlugins[pName]->GetType()])
+ "): " + e.what());
UnLoadPlugin(pName);
return;
}
m_mapPlugins[pName] = plugin;
comm_layer_inner_debug("Registered plugin " + pName + "("
- + std::string(plugin_type_str_t[m_mapABRTPlugins[pName]->GetType()])
+ + std::string(plugin_type_str[m_mapABRTPlugins[pName]->GetType()])
+ ")");
}
}
@@ -163,7 +245,7 @@ void CPluginManager::UnRegisterPlugin(const std::string& pName)
delete m_mapPlugins[pName];
m_mapPlugins.erase(pName);
comm_layer_inner_debug("UnRegistred plugin " + pName + "("
- + std::string(plugin_type_str_t[m_mapABRTPlugins[pName]->GetType()])
+ + std::string(plugin_type_str[m_mapABRTPlugins[pName]->GetType()])
+ ")");
}
}
@@ -249,7 +331,7 @@ vector_map_string_string_t CPluginManager::GetPluginsInfo()
plugin_info["Enabled"] = (m_mapPlugins.find(it_abrt_plugin->second->GetName()) != m_mapPlugins.end()) ?
"yes" : "no";
- plugin_info["Type"] = plugin_type_str_t[it_abrt_plugin->second->GetType()];
+ plugin_info["Type"] = plugin_type_str[it_abrt_plugin->second->GetType()];
plugin_info["Name"] = it_abrt_plugin->second->GetName();
plugin_info["Version"] = it_abrt_plugin->second->GetVersion();
plugin_info["Description"] = it_abrt_plugin->second->GetDescription();
@@ -277,7 +359,7 @@ void CPluginManager::SetPluginSettings(const std::string& pName,
if (home != "")
{
std::string confDir = home + "/.abrt";
- std::string confPath = confDir + "/" + pName + "." + PLUGINS_CONF_EXTENSION;
+ std::string confPath = confDir + "/" + pName + "."PLUGINS_CONF_EXTENSION;
uid_t uid = atoi(pUID.c_str());
struct passwd* pw = getpwuid(uid);
gid_t gid = pw ? pw->pw_gid : uid;
@@ -335,7 +417,7 @@ map_plugin_settings_t CPluginManager::GetPluginSettings(const std::string& pName
std::string home = get_home_dir(atoi(pUID.c_str()));
if (home != "")
{
- LoadPluginSettings(home + "/.abrt/" + pName + "." + PLUGINS_CONF_EXTENSION, ret);
+ LoadPluginSettings(home + "/.abrt/" + pName + "."PLUGINS_CONF_EXTENSION, ret);
}
}
return ret;
@@ -343,79 +425,3 @@ map_plugin_settings_t CPluginManager::GetPluginSettings(const std::string& pName
}
return ret;
}
-
-bool CPluginManager::LoadPluginSettings(const std::string& pPath, map_plugin_settings_t& pSettings)
-{
- std::ifstream fIn;
- fIn.open(pPath.c_str());
- if (fIn.is_open())
- {
- std::string line;
- while (!fIn.eof())
- {
- getline(fIn, line);
-
- int ii;
- bool is_value = false;
- bool valid = false;
- bool in_quote = false;
- std::string key = "";
- std::string value = "";
- for (ii = 0; ii < line.length(); ii++)
- {
- if (line[ii] == '\"')
- {
- in_quote = in_quote == true ? false : true;
- }
- if (isspace(line[ii]) && !in_quote)
- {
- continue;
- }
- if (line[ii] == '#' && !in_quote && key == "")
- {
- break;
- }
- if (line[ii] == '=' && !in_quote)
- {
- is_value = true;
- continue;
- }
- if (!is_value)
- {
- key += line[ii];
- }
- else
- {
- valid = true;
- value += line[ii];
- }
- }
- if (valid && !in_quote)
- {
- pSettings[key] = value;
- }
- }
- fIn.close();
- return true;
- }
- return false;
-
-}
-
-bool CPluginManager::SavePluginSettings(const std::string& pPath, const map_plugin_settings_t& pSettings)
-{
- std::ofstream fOut;
- fOut.open(pPath.c_str());
- if (fOut.is_open())
- {
- fOut << "# Settings were written by abrt." << std::endl;
- map_plugin_settings_t::const_iterator it;
- for (it = pSettings.begin(); it != pSettings.end(); it++)
- {
- fOut << it->first << " = " << it->second << std::endl;
- }
- fOut.close();
- return true;
- }
- return false;
-}
diff --git a/src/Daemon/PluginManager.h b/src/Daemon/PluginManager.h
index 5ec616c..590192f 100644
--- a/src/Daemon/PluginManager.h
+++ b/src/Daemon/PluginManager.h
@@ -147,23 +147,15 @@ class CPluginManager
*/
map_plugin_settings_t GetPluginSettings(const std::string& pName,
const std::string& pUID);
- /**
- * A function. It loads settings and store it in second parameter. On success it
- * returns true, otherwise returns false.
- * @param path A path of config file.
- * @param settings A readed plugin's settings.
- * @return if it success it returns true, otherwise it returns false.
- */
- bool LoadPluginSettings(const std::string& pPath,
- map_plugin_settings_t& pSettings);
- /**
- * A function. It saves settings. On success it returns true, otherwise returns false.
- * @param path A path of config file.
- * @param settings Plugin's settings.
- * @return if it success it returns true, otherwise it returns false.
- */
- bool SavePluginSettings(const std::string& pPath,
- const map_plugin_settings_t& pSettings);
};
+/**
+ * A function. It loads settings and store it in second parameter. On success it
+ * returns true, otherwise returns false.
+ * @param path A path of config file.
+ * @param settings A readed plugin's settings.
+ * @return if it success it returns true, otherwise it returns false.
+ */
+bool LoadPluginSettings(const std::string& pPath,
+ map_plugin_settings_t& pSettings);
#endif /*PLUGINMANAGER_H_*/