summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicolas.dufresne <nicolas.dufresne@c587cffe-e639-0410-9787-d7902ae8ed56>2010-08-18 20:04:27 +0000
committernicolas.dufresne <nicolas.dufresne@c587cffe-e639-0410-9787-d7902ae8ed56>2010-08-18 20:04:27 +0000
commit6f2132200632f04907dc3e58d9af5c16a42963a3 (patch)
tree7c226b89ea754f7b2b7f4022121ece53eaaf62ce
parent7defd5c1866b561d6dc9eb2d68c8f43f07d865e5 (diff)
downloadlibproxy-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.cmk2
-rw-r--r--libproxy/extension_pacrunner.hpp3
-rw-r--r--libproxy/modules/config_envvar.cpp2
-rw-r--r--libproxy/modules/config_gnome.cpp17
-rw-r--r--libproxy/modules/config_kde4.cpp3
-rw-r--r--libproxy/modules/config_macosx.cpp2
-rw-r--r--libproxy/modules/config_w32reg.cpp2
-rw-r--r--libproxy/modules/ignore_domain.cpp2
-rw-r--r--libproxy/modules/ignore_hostname.cpp2
-rw-r--r--libproxy/modules/ignore_ip.cpp2
-rw-r--r--libproxy/modules/network_networkmanager.cpp2
-rw-r--r--libproxy/modules/wpad_dns_alias.cpp2
-rw-r--r--libproxy/proxy.cpp10
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");