From 76978866497a7dd9be96edef5fa06f470a6b324f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Sun, 16 Oct 2011 10:16:56 +0200 Subject: Hoist ProxyProvider creation out of Client. diff --git a/Swiften/Client/CoreClient.cpp b/Swiften/Client/CoreClient.cpp index 2a66905..a8a5c8f 100644 --- a/Swiften/Client/CoreClient.cpp +++ b/Swiften/Client/CoreClient.cpp @@ -17,11 +17,11 @@ #include #include #include +#include #include #include #include #include -#include #include #include @@ -62,12 +62,11 @@ void CoreClient::connect(const std::string& host) { disconnectRequested_ = false; assert(!connector_); assert(proxyConnectionFactories.empty()); - PlatformProxyProvider proxyProvider; - if(proxyProvider.getSOCKS5Proxy().isValid()) { - proxyConnectionFactories.push_back(new SOCKS5ProxiedConnectionFactory(networkFactories->getConnectionFactory(), proxyProvider.getSOCKS5Proxy())); + if(networkFactories->getProxyProvider()->getSOCKS5Proxy().isValid()) { + proxyConnectionFactories.push_back(new SOCKS5ProxiedConnectionFactory(networkFactories->getConnectionFactory(), networkFactories->getProxyProvider()->getSOCKS5Proxy())); } - if(proxyProvider.getHTTPConnectProxy().isValid()) { - proxyConnectionFactories.push_back(new HTTPConnectProxiedConnectionFactory(networkFactories->getConnectionFactory(), proxyProvider.getHTTPConnectProxy())); + if(networkFactories->getProxyProvider()->getHTTPConnectProxy().isValid()) { + proxyConnectionFactories.push_back(new HTTPConnectProxiedConnectionFactory(networkFactories->getConnectionFactory(), networkFactories->getProxyProvider()->getHTTPConnectProxy())); } std::vector connectionFactories(proxyConnectionFactories); connectionFactories.push_back(networkFactories->getConnectionFactory()); diff --git a/Swiften/Network/BoostNetworkFactories.cpp b/Swiften/Network/BoostNetworkFactories.cpp index 030fd49..2b4c04b 100644 --- a/Swiften/Network/BoostNetworkFactories.cpp +++ b/Swiften/Network/BoostNetworkFactories.cpp @@ -13,6 +13,7 @@ #include #include #include +#include namespace Swift { @@ -28,13 +29,11 @@ BoostNetworkFactories::BoostNetworkFactories(EventLoop* eventLoop) { #endif xmlParserFactory = new PlatformXMLParserFactory(); tlsFactories = new PlatformTLSFactories(); -} - -TLSContextFactory* BoostNetworkFactories::getTLSContextFactory() const { - return tlsFactories->getTLSContextFactory(); + proxyProvider = new PlatformProxyProvider(); } BoostNetworkFactories::~BoostNetworkFactories() { + delete proxyProvider; delete tlsFactories; delete xmlParserFactory; delete natTraverser; @@ -44,4 +43,8 @@ BoostNetworkFactories::~BoostNetworkFactories() { delete timerFactory; } +TLSContextFactory* BoostNetworkFactories::getTLSContextFactory() const { + return tlsFactories->getTLSContextFactory(); +} + } diff --git a/Swiften/Network/BoostNetworkFactories.h b/Swiften/Network/BoostNetworkFactories.h index 8f2b17a..3d268d1 100644 --- a/Swiften/Network/BoostNetworkFactories.h +++ b/Swiften/Network/BoostNetworkFactories.h @@ -49,6 +49,10 @@ namespace Swift { virtual TLSContextFactory* getTLSContextFactory() const; + virtual ProxyProvider* getProxyProvider() const { + return proxyProvider; + } + private: BoostIOServiceThread ioServiceThread; TimerFactory* timerFactory; @@ -58,5 +62,6 @@ namespace Swift { NATTraverser* natTraverser; XMLParserFactory* xmlParserFactory; PlatformTLSFactories* tlsFactories; + ProxyProvider* proxyProvider; }; } diff --git a/Swiften/Network/NetworkFactories.h b/Swiften/Network/NetworkFactories.h index 2404460..6eba2f3 100644 --- a/Swiften/Network/NetworkFactories.h +++ b/Swiften/Network/NetworkFactories.h @@ -15,6 +15,7 @@ namespace Swift { class XMLParserFactory; class TLSContextFactory; class CertificateFactory; + class ProxyProvider; /** * An interface collecting network factories. @@ -30,5 +31,6 @@ namespace Swift { virtual NATTraverser* getNATTraverser() const = 0; virtual XMLParserFactory* getXMLParserFactory() const = 0; virtual TLSContextFactory* getTLSContextFactory() const = 0; + virtual ProxyProvider* getProxyProvider() const = 0; }; } -- cgit v0.10.2-6-g49f6