diff options
Diffstat (limited to 'core/modules.cpp')
-rw-r--r-- | core/modules.cpp | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/core/modules.cpp b/core/modules.cpp index 3708655..a8b6644 100644 --- a/core/modules.cpp +++ b/core/modules.cpp @@ -8,6 +8,7 @@ void load_modules() { std::string path = boost::filesystem::initial_path().directory_string(); //need some workaround for windows than called indirectly path.append("/plugins"); + logger.log(LM_DEBUG, "Plugin directory is %s \n", path.c_str()); logger.log(LM_DEBUG, "Loading plugins...\n"); boost::filesystem::path pth(path); if(!boost::filesystem::is_directory(pth)) @@ -17,11 +18,13 @@ void load_modules() { if(boost::filesystem::is_directory(*i)) //we not look in subdirectories { + logger.log(LM_DEBUG, "found subdirectory under plugins directory, skipping.\n"); ++i; continue; } if(!boost::filesystem::status_known((*i).status())) //worng data { + logger.log(LM_DEBUG, "found invalid filesystem object, skipping.\n"); ++i; continue; } @@ -32,13 +35,25 @@ void load_modules() if(dll->open(pth.string().c_str()) != -1) { if((funcs->Load = (load)dll->symbol("load")) == NULL) + { is_plugin = false; + logger.log(LM_DEBUG, "\'load\' not found in library, this is not plugin.\n"); + } if((funcs->OnModulesLoaded = (on_modules_loaded)dll->symbol("on_modules_loaded")) == NULL) + { is_plugin = false; + logger.log(LM_DEBUG, "\'on_modules_loaded\' not found in library, this is not plugin.\n"); + } if((funcs->Unload = (unload)dll->symbol("unload")) == NULL) + { is_plugin = false; + logger.log(LM_DEBUG, "\'unload\' not found in library, this is not plugin.\n"); + } if((funcs->SetPluginInfo = (set_plugin_info)dll->symbol("set_plugin_info")) == NULL) + { is_plugin = false; + logger.log(LM_DEBUG, "\'set_plugin_info\' not found in library, this is not plugin.\n"); + } } if(!is_plugin) { @@ -61,21 +76,11 @@ void run_plugins() boost::thread *thr; thr = new boost::thread(boost::bind((*i)->get_exported_functions()->Load, &pluglink)); if(!thr->timed_join(boost::posix_time::seconds(10))) - { - std::string msg = "Thread execution timeout, plugin "; - msg += toUTF8((*i)->get_plugininfo()->name); - msg += " basic initialisation failed.\n"; - logger.log(LM_DEBUG, msg.c_str()); - } + logger.log(LM_DEBUG, "Thread execution timeout, plugin %s basic initialisation failed.\n", toUTF8((*i)->get_plugininfo()->name).c_str()); delete thr; thr = new boost::thread(boost::bind((*i)->get_exported_functions()->OnModulesLoaded)); if(!thr->timed_join(boost::posix_time::seconds(15))) - { - std::string msg = "Thread execution timeout, plugin "; - msg += toUTF8((*i)->get_plugininfo()->name); - msg += " main initialisation failed.\n"; - logger.log(LM_DEBUG, msg.c_str()); - } + logger.log(LM_DEBUG, "Thread execution timeout, plugin %s main initialisation failed.\n", toUTF8((*i)->get_plugininfo()->name).c_str()); delete thr; } } |