From 3c98b27f754a3ef97a8b0a02ecfd0ac1aa6e1fe5 Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Sun, 22 Aug 2010 05:02:11 +0000 Subject: Improve performance by reusing HTTP proxy connections across invocations and using local function proxies instead of HTTP proxies for local wires. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@987845 13f79535-47bb-0310-9956-ffa450edef68 --- sca-cpp/trunk/modules/server/mod-wiring.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'sca-cpp/trunk/modules/server/mod-wiring.cpp') diff --git a/sca-cpp/trunk/modules/server/mod-wiring.cpp b/sca-cpp/trunk/modules/server/mod-wiring.cpp index 17cfcaae0e..188aa620fb 100644 --- a/sca-cpp/trunk/modules/server/mod-wiring.cpp +++ b/sca-cpp/trunk/modules/server/mod-wiring.cpp @@ -53,8 +53,10 @@ const bool useModProxy = true; */ class ServerConf { public: - ServerConf(server_rec* s) : server(s), contributionPath(""), compositeName(""), virtualHostContributionPath(""), virtualHostCompositeName("") { + ServerConf(apr_pool_t* p, server_rec* s) : p(p), server(s), contributionPath(""), compositeName(""), virtualHostContributionPath(""), virtualHostCompositeName("") { } + + const gc_pool p; server_rec* server; string contributionPath; string compositeName; @@ -78,13 +80,6 @@ const bool hasVirtualCompositeConf(const ServerConf& sc) { return sc.virtualHostContributionPath != "" && sc.virtualHostCompositeName != ""; } -/** - * Returns true if a URI is absolute. - */ -const bool isAbsolute(const string& uri) { - return contains(uri, "://"); -} - /** * Route a /references/component-name/reference-name request, * to the target of the component reference. @@ -107,7 +102,7 @@ int translateReference(const ServerConf& sc, request_rec *r) { debug(target, "modwiring::translateReference::target"); // Route to an absolute target URI using mod_proxy or an HTTP client redirect - if (isAbsolute(target)) { + if (httpd::isAbsolute(target)) { if (useModProxy) { // Build proxy URI using current request's protocol scheme r->filename = apr_pstrdup(r->pool, c_str(string("proxy:") + httpd::scheme(r) + substr(target, find(target, "://")))); @@ -270,7 +265,7 @@ const bool confComponents(ServerConf& sc) { */ class VirtualHostConf { public: - VirtualHostConf(const ServerConf& ssc) : sc(ssc.server) { + VirtualHostConf(const gc_pool& p, const ServerConf& ssc) : sc(pool(p), ssc.server) { sc.virtualHostContributionPath = ssc.virtualHostContributionPath; sc.virtualHostCompositeName = ssc.virtualHostCompositeName; } @@ -316,7 +311,7 @@ int translate(request_rec *r) { const ServerConf& sc = httpd::serverConf(r, &mod_tuscany_wiring); // Process dynamic virtual host configuration - VirtualHostConf vhc(sc); + VirtualHostConf vhc(gc_pool(r->pool), sc); const bool usevh = hasVirtualCompositeConf(vhc.sc) && httpd::isVirtualHostRequest(sc.server, r); if (usevh) { const failable cr = virtualHostConfig(vhc.sc, r); -- cgit v1.2.3