summaryrefslogtreecommitdiff
path: root/libproxy
diff options
context:
space:
mode:
authornpmccallum <npmccallum@c587cffe-e639-0410-9787-d7902ae8ed56>2010-01-29 05:49:43 +0000
committernpmccallum <npmccallum@c587cffe-e639-0410-9787-d7902ae8ed56>2010-01-29 05:49:43 +0000
commit8ed9116d8c093fb84d601ef4e2b906281fa2fe83 (patch)
tree792cd5634ad09f8344641c983a7a1867e27170f0 /libproxy
parent30acfe57f68a65905da52753f689d3a07144f6b4 (diff)
downloadlibproxy-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.cpp14
-rw-r--r--libproxy/module_manager.hpp9
-rw-r--r--libproxy/modules/config_file.cpp2
-rw-r--r--libproxy/modules/config_gnome.cpp2
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) {}