summaryrefslogtreecommitdiffstats
path: root/lib/MiddleWare/PluginManager.cpp
diff options
context:
space:
mode:
authorZdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com>2009-04-08 13:44:35 +0200
committerZdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com>2009-04-08 13:44:35 +0200
commit234a905fe548f73f5e1df0db5b3490ae9b00a9d5 (patch)
tree70dca16dbb78da5925a626890442b687b04a4f80 /lib/MiddleWare/PluginManager.cpp
parent5c4a18fdd9795abaed59d3f5718d60cecde889ab (diff)
downloadabrt-234a905fe548f73f5e1df0db5b3490ae9b00a9d5.tar.gz
abrt-234a905fe548f73f5e1df0db5b3490ae9b00a9d5.tar.xz
abrt-234a905fe548f73f5e1df0db5b3490ae9b00a9d5.zip
renamed MW library
renamed Utils library added check for plugins init method renamed crash types
Diffstat (limited to 'lib/MiddleWare/PluginManager.cpp')
-rw-r--r--lib/MiddleWare/PluginManager.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/MiddleWare/PluginManager.cpp b/lib/MiddleWare/PluginManager.cpp
index 00c54fa..2f103f2 100644
--- a/lib/MiddleWare/PluginManager.cpp
+++ b/lib/MiddleWare/PluginManager.cpp
@@ -116,8 +116,19 @@ void CPluginManager::RegisterPlugin(const std::string& pName)
{
std::string path = m_sPlugisConfDir + "/" + pName + "." + PLUGINS_CONF_EXTENSION;
CPlugin* plugin = m_mapABRTPlugins[pName]->PluginNew();
- plugin->Init();
- plugin->LoadSettings(path);
+ try
+ {
+ plugin->Init();
+ plugin->LoadSettings(path);
+ }
+ catch (std::string sError)
+ {
+ std::cerr << "Can not initialize plugin " << pName << "("
+ << plugin_type_str_t[m_mapABRTPlugins[pName]->GetType()]
+ << ")" << std::endl;
+ UnLoadPlugin(pName);
+ return;
+ }
m_mapPlugins[pName] = plugin;
std::cerr << "Registred plugin " << pName << "("
<< plugin_type_str_t[m_mapABRTPlugins[pName]->GetType()]