diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-08-24 12:15:39 +0200 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-08-24 12:15:39 +0200 |
| commit | 7c223d2142bf11cda27fd43c387cbfa66838f433 (patch) | |
| tree | 47e20cecff662b11d35b12b41aa1163d1e4dc415 /src | |
| parent | 0fdbc8ae884312b04309b4931d8bdf9b082de82c (diff) | |
| download | abrt-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.h | 14 | ||||
| -rw-r--r-- | src/Daemon/CrashWatcher.cpp | 28 | ||||
| -rw-r--r-- | src/Daemon/Daemon.cpp | 40 | ||||
| -rw-r--r-- | src/Daemon/MiddleWare.cpp | 2 | ||||
| -rw-r--r-- | src/Daemon/PluginManager.cpp | 172 | ||||
| -rw-r--r-- | src/Daemon/PluginManager.h | 26 |
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_*/ |
