diff options
author | nicolas.dufresne <nicolas.dufresne@c587cffe-e639-0410-9787-d7902ae8ed56> | 2010-08-18 20:04:27 +0000 |
---|---|---|
committer | nicolas.dufresne <nicolas.dufresne@c587cffe-e639-0410-9787-d7902ae8ed56> | 2010-08-18 20:04:27 +0000 |
commit | 6f2132200632f04907dc3e58d9af5c16a42963a3 (patch) | |
tree | 7c226b89ea754f7b2b7f4022121ece53eaaf62ce | |
parent | 7defd5c1866b561d6dc9eb2d68c8f43f07d865e5 (diff) | |
download | libproxy-6f2132200632f04907dc3e58d9af5c16a42963a3.tar.gz |
Ported libproxy to new libmodman API/ABI
This solves issue 133 by using real builtin modules instead of relying
on symbols being visible in current process.
git-svn-id: http://libproxy.googlecode.com/svn/trunk@721 c587cffe-e639-0410-9787-d7902ae8ed56
-rw-r--r-- | libproxy/cmake/pxmodule.cmk | 2 | ||||
-rw-r--r-- | libproxy/extension_pacrunner.hpp | 3 | ||||
-rw-r--r-- | libproxy/modules/config_envvar.cpp | 2 | ||||
-rw-r--r-- | libproxy/modules/config_gnome.cpp | 17 | ||||
-rw-r--r-- | libproxy/modules/config_kde4.cpp | 3 | ||||
-rw-r--r-- | libproxy/modules/config_macosx.cpp | 2 | ||||
-rw-r--r-- | libproxy/modules/config_w32reg.cpp | 2 | ||||
-rw-r--r-- | libproxy/modules/ignore_domain.cpp | 2 | ||||
-rw-r--r-- | libproxy/modules/ignore_hostname.cpp | 2 | ||||
-rw-r--r-- | libproxy/modules/ignore_ip.cpp | 2 | ||||
-rw-r--r-- | libproxy/modules/network_networkmanager.cpp | 2 | ||||
-rw-r--r-- | libproxy/modules/wpad_dns_alias.cpp | 2 | ||||
-rw-r--r-- | libproxy/proxy.cpp | 10 |
13 files changed, 29 insertions, 22 deletions
diff --git a/libproxy/cmake/pxmodule.cmk b/libproxy/cmake/pxmodule.cmk index 8b67b42..bbbd989 100644 --- a/libproxy/cmake/pxmodule.cmk +++ b/libproxy/cmake/pxmodule.cmk @@ -10,7 +10,7 @@ function(px_module name build builtin) set(built "*") set_property(SOURCE modules/${name}.cpp PROPERTY COMPILE_DEFINITIONS LIBEXECDIR="${LIBEXECDIR}";MM_MODULE_BUILTIN=${name}) set(LIBPROXY_SOURCES ${LIBPROXY_SOURCES} modules/${name}.cpp PARENT_SCOPE) - set(BUILTIN_MODULES "${BUILTIN_MODULES} \"${name}\"," PARENT_SCOPE) + set(BUILTIN_MODULES "${BUILTIN_MODULES} X\(${name}\)" PARENT_SCOPE) if(${ARGC} GREATER 3) set(LIBPROXY_LIBRARIES ${LIBPROXY_LIBRARIES} ${ARGN} PARENT_SCOPE) endif() diff --git a/libproxy/extension_pacrunner.hpp b/libproxy/extension_pacrunner.hpp index 14dcdb4..de7abb5 100644 --- a/libproxy/extension_pacrunner.hpp +++ b/libproxy/extension_pacrunner.hpp @@ -30,8 +30,7 @@ return new name ## _pacrunner(pac, pacurl); \ } \ }; \ - MM_MODULE_INIT_EZ(name ## _pacrunner_extension); \ - MM_MODULE_SYMB(symb, smod) + MM_MODULE_INIT_EZ(name ## _pacrunner_extension, true, symb, smod) namespace libproxy { using namespace std; diff --git a/libproxy/modules/config_envvar.cpp b/libproxy/modules/config_envvar.cpp index 30ae8b6..f1c4e46 100644 --- a/libproxy/modules/config_envvar.cpp +++ b/libproxy/modules/config_envvar.cpp @@ -62,4 +62,4 @@ public: } }; -MM_MODULE_INIT_EZ(envvar_config_extension) +MM_MODULE_INIT_EZ(envvar_config_extension, true, NULL, NULL); diff --git a/libproxy/modules/config_gnome.cpp b/libproxy/modules/config_gnome.cpp index 690b7a3..94cea01 100644 --- a/libproxy/modules/config_gnome.cpp +++ b/libproxy/modules/config_gnome.cpp @@ -302,10 +302,13 @@ static base_extension** gnome_config_extension_init() { } } -MM_MODULE_INIT(gnome_config_extension, gnome_config_extension_init); -MM_MODULE_TEST_EZ(gnome_config_extension, - ( - getenv("GNOME_DESKTOP_SESSION_ID") || - (getenv("DESKTOP_SESSION") && string(getenv("DESKTOP_SESSION")) == "gnome") - ) - ); +static bool gnome_config_extension_test() { + return (getenv("GNOME_DESKTOP_SESSION_ID") + || (getenv("DESKTOP_SESSION") + && string(getenv("DESKTOP_SESSION")) == "gnome")); +} + +MM_MODULE_INIT(gnome_config_extension, + gnome_config_extension_init, + gnome_config_extension_test, + NULL, NULL); diff --git a/libproxy/modules/config_kde4.cpp b/libproxy/modules/config_kde4.cpp index 94fda99..bbf1910 100644 --- a/libproxy/modules/config_kde4.cpp +++ b/libproxy/modules/config_kde4.cpp @@ -98,5 +98,4 @@ private: KConfigGroup* grp; }; -MM_MODULE_INIT_EZ(kde_config_extension); -MM_MODULE_TEST_EZ(kde_config_extension, getenv("KDE_FULL_SESSION")); +MM_MODULE_INIT_EZ(kde_config_extension, getenv("KDE_FULL_SESSION"), NULL, NULL); diff --git a/libproxy/modules/config_macosx.cpp b/libproxy/modules/config_macosx.cpp index c8cec85..c675662 100644 --- a/libproxy/modules/config_macosx.cpp +++ b/libproxy/modules/config_macosx.cpp @@ -162,5 +162,5 @@ public: } }; -MM_MODULE_INIT_EZ(macosx_config_extension); +MM_MODULE_INIT_EZ(macosx_config_extension, true, NULL, NULL); diff --git a/libproxy/modules/config_w32reg.cpp b/libproxy/modules/config_w32reg.cpp index da650a3..0111c33 100644 --- a/libproxy/modules/config_w32reg.cpp +++ b/libproxy/modules/config_w32reg.cpp @@ -162,4 +162,4 @@ public: } }; -MM_MODULE_INIT_EZ(w32reg_config_extension); +MM_MODULE_INIT_EZ(w32reg_config_extension, true, NULL, NULL); diff --git a/libproxy/modules/ignore_domain.cpp b/libproxy/modules/ignore_domain.cpp index 580222a..9183bb2 100644 --- a/libproxy/modules/ignore_domain.cpp +++ b/libproxy/modules/ignore_domain.cpp @@ -56,4 +56,4 @@ public: } }; -MM_MODULE_INIT_EZ(domain_ignore_extension); +MM_MODULE_INIT_EZ(domain_ignore_extension, true, NULL, NULL); diff --git a/libproxy/modules/ignore_hostname.cpp b/libproxy/modules/ignore_hostname.cpp index 592da71..c9a7621 100644 --- a/libproxy/modules/ignore_hostname.cpp +++ b/libproxy/modules/ignore_hostname.cpp @@ -33,4 +33,4 @@ public: } }; -MM_MODULE_INIT_EZ(hostname_ignore_extension); +MM_MODULE_INIT_EZ(hostname_ignore_extension, true, NULL, NULL); diff --git a/libproxy/modules/ignore_ip.cpp b/libproxy/modules/ignore_ip.cpp index 2c66b77..388c177 100644 --- a/libproxy/modules/ignore_ip.cpp +++ b/libproxy/modules/ignore_ip.cpp @@ -179,4 +179,4 @@ public: } }; -MM_MODULE_INIT_EZ(ip_ignore_extension); +MM_MODULE_INIT_EZ(ip_ignore_extension, true, NULL, NULL); diff --git a/libproxy/modules/network_networkmanager.cpp b/libproxy/modules/network_networkmanager.cpp index 7f621f4..564c275 100644 --- a/libproxy/modules/network_networkmanager.cpp +++ b/libproxy/modules/network_networkmanager.cpp @@ -89,4 +89,4 @@ private: DBusConnection *conn; }; -MM_MODULE_INIT_EZ(networkmanager_network_extension); +MM_MODULE_INIT_EZ(networkmanager_network_extension, true, NULL, NULL); diff --git a/libproxy/modules/wpad_dns_alias.cpp b/libproxy/modules/wpad_dns_alias.cpp index 17dd849..ca89c36 100644 --- a/libproxy/modules/wpad_dns_alias.cpp +++ b/libproxy/modules/wpad_dns_alias.cpp @@ -44,4 +44,4 @@ private: char* lastpac; }; -MM_MODULE_INIT_EZ(dns_alias_wpad_extension); +MM_MODULE_INIT_EZ(dns_alias_wpad_extension, true, NULL, NULL); diff --git a/libproxy/proxy.cpp b/libproxy/proxy.cpp index 028c659..7555cc9 100644 --- a/libproxy/proxy.cpp +++ b/libproxy/proxy.cpp @@ -34,10 +34,16 @@ #define strdup _strdup #endif -static const char* builtin_modules[] = { +#define X(m) MM_DEF_BUILTIN(m); +BUILTIN_MODULES +#undef X + +#define X(m) &MM_BUILTIN(m), +static struct mm_module* builtin_modules[] = { BUILTIN_MODULES NULL }; +#undef X namespace libproxy { using namespace std; @@ -143,7 +149,7 @@ proxy_factory::proxy_factory() { // Load builtin modules for (int i=0 ; builtin_modules[i] ; i++) - this->mm.load_builtin(builtin_modules[i], "libproxy"); + this->mm.load_builtin(builtin_modules[i]); // Load all modules module_dir = getenv("PX_MODULE_PATH"); |