diff options
author | npmccallum <npmccallum@c587cffe-e639-0410-9787-d7902ae8ed56> | 2010-01-29 05:49:43 +0000 |
---|---|---|
committer | npmccallum <npmccallum@c587cffe-e639-0410-9787-d7902ae8ed56> | 2010-01-29 05:49:43 +0000 |
commit | 8ed9116d8c093fb84d601ef4e2b906281fa2fe83 (patch) | |
tree | 792cd5634ad09f8344641c983a7a1867e27170f0 /libproxy | |
parent | 30acfe57f68a65905da52753f689d3a07144f6b4 (diff) | |
download | libproxy-8ed9116d8c093fb84d601ef4e2b906281fa2fe83.tar.gz |
fix module loading again
git-svn-id: http://libproxy.googlecode.com/svn/trunk@511 c587cffe-e639-0410-9787-d7902ae8ed56
Diffstat (limited to 'libproxy')
-rw-r--r-- | libproxy/module_manager.cpp | 14 | ||||
-rw-r--r-- | libproxy/module_manager.hpp | 9 | ||||
-rw-r--r-- | libproxy/modules/config_file.cpp | 2 | ||||
-rw-r--r-- | libproxy/modules/config_gnome.cpp | 2 |
4 files changed, 8 insertions, 19 deletions
diff --git a/libproxy/module_manager.cpp b/libproxy/module_manager.cpp index 70258df..23d3676 100644 --- a/libproxy/module_manager.cpp +++ b/libproxy/module_manager.cpp @@ -26,6 +26,9 @@ using namespace std; using namespace com::googlecode::libproxy; +#define _str(s) #s +#define __str(s) _str(s) + static vector<string> strsplit(const char* cstr, string delimiter) { vector<string> v; string str = cstr ? cstr : ""; @@ -83,15 +86,6 @@ module_manager::~module_manager() { this->dl_modules.clear(); } -bool module_manager::load_builtin(const string modname) { - dl_module dlobj; - module_manager::LOAD_TYPE load = (module_manager::LOAD_TYPE) - dlobj.get_symbol(modname + __str(PX_MODULE_LOAD_SUFFIX)); - if (!load || !load(*this)) - return false; - return true; -} - bool module_manager::load_file(const string filename, const string condsym) { dl_module* dlobj = NULL; string modname = module::make_name(filename); @@ -140,7 +134,7 @@ bool module_manager::load_file(const string filename, const string condsym) { // Call the INIT function module_manager::LOAD_TYPE load = (module_manager::LOAD_TYPE) - dlobj->get_symbol(modname + __str(PX_MODULE_LOAD_SUFFIX)); + dlobj->get_symbol(__str(PX_MODULE_LOAD_NAME)); if (!load || !load(*this)) { this->dl_modules.erase(dlobj); delete dlobj; diff --git a/libproxy/module_manager.hpp b/libproxy/module_manager.hpp index 9fdeedc..fcca408 100644 --- a/libproxy/module_manager.hpp +++ b/libproxy/module_manager.hpp @@ -29,13 +29,9 @@ #include "dl_module.hpp" #include "module.hpp" -#define PX_MODULE_LOAD_SUFFIX _module_load -#define PX_MODULE_LOAD_NAME_MODNAME(modname) modname ## _MODULE_LOAD_SUFFIX -#define PX_MODULE_LOAD_NAME(type, name) PX_MODULE_LOAD_NAME_MODNAME(type ## _ ## name) -#define __str(s) #s - +#define PX_MODULE_LOAD_NAME px_module_load #define PX_MODULE_LOAD(type, name, cond) \ - extern "C" bool PX_MODULE_LOAD_NAME(type, name)(module_manager& mm) { \ + extern "C" DLL_PUBLIC bool PX_MODULE_LOAD_NAME(module_manager& mm) { \ if (cond) return mm.register_module<type ## _module>(new name ## _ ## type ## _module); \ return false; \ } @@ -96,7 +92,6 @@ public: return true; } - bool load_builtin(const string modname); bool load_file(const string filename, const string condsym=""); bool load_dir(const string dirname); diff --git a/libproxy/modules/config_file.cpp b/libproxy/modules/config_file.cpp index 2724ecc..66296e1 100644 --- a/libproxy/modules/config_file.cpp +++ b/libproxy/modules/config_file.cpp @@ -62,7 +62,7 @@ protected: virtual string get_filename() { return string(getenv("HOME")) + string("/.proxy.conf"); } }; -extern "C" DLL_PUBLIC bool PX_MODULE_LOAD_NAME(config, file)(module_manager& mm) { +extern "C" DLL_PUBLIC bool PX_MODULE_LOAD_NAME(module_manager& mm) { bool success = mm.register_module<config_module>(new user_file_config_module); return mm.register_module<config_module>(new system_file_config_module) || success; } diff --git a/libproxy/modules/config_gnome.cpp b/libproxy/modules/config_gnome.cpp index 36e2167..27af9bf 100644 --- a/libproxy/modules/config_gnome.cpp +++ b/libproxy/modules/config_gnome.cpp @@ -253,7 +253,7 @@ private: }; // If we are running in GNOME, then make sure this plugin is registered. -extern "C" DLL_PUBLIC bool PX_MODULE_LOAD_NAME(config, gnome)(module_manager& mm) { +extern "C" DLL_PUBLIC bool PX_MODULE_LOAD_NAME(module_manager& mm) { if (xhasclient("gnome-session", "gnome-settings-daemon", "gnome-panel", NULL)) { try { return mm.register_module<config_module>(new gnome_config_module); } catch (runtime_error) {} |