From 790dd3e97c6634f6a256f2e072507b9d5f29348b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Sat, 18 Dec 2010 12:57:45 +0100
Subject: Move domain name resolver in the network factories.


diff --git a/Swiften/Client/CoreClient.cpp b/Swiften/Client/CoreClient.cpp
index e61f9f9..b2bbad8 100644
--- a/Swiften/Client/CoreClient.cpp
+++ b/Swiften/Client/CoreClient.cpp
@@ -22,7 +22,7 @@
 
 namespace Swift {
 
-CoreClient::CoreClient(EventLoop* eventLoop, NetworkFactories* networkFactories, const JID& jid, const String& password) : resolver_(eventLoop), jid_(jid), password_(password), eventLoop(eventLoop), networkFactories(networkFactories), disconnectRequested_(false), certificateTrustChecker(NULL) {
+CoreClient::CoreClient(EventLoop* eventLoop, NetworkFactories* networkFactories, const JID& jid, const String& password) : jid_(jid), password_(password), eventLoop(eventLoop), networkFactories(networkFactories), disconnectRequested_(false), certificateTrustChecker(NULL) {
 	stanzaChannel_ = new ClientSessionStanzaChannel();
 	stanzaChannel_->onMessageReceived.connect(boost::ref(onMessageReceived));
 	stanzaChannel_->onPresenceReceived.connect(boost::ref(onPresenceReceived));
@@ -56,7 +56,7 @@ void CoreClient::connect(const String& host) {
 	SWIFT_LOG(debug) << "Connecting to host " << host << std::endl;
 	disconnectRequested_ = false;
 	assert(!connector_);
-	connector_ = Connector::create(host, &resolver_, networkFactories->getConnectionFactory(), networkFactories->getTimerFactory());
+	connector_ = Connector::create(host, networkFactories->getDomainNameResolver(), networkFactories->getConnectionFactory(), networkFactories->getTimerFactory());
 	connector_->onConnectFinished.connect(boost::bind(&CoreClient::handleConnectorFinished, this, _1));
 	connector_->setTimeoutMilliseconds(60*1000);
 	connector_->start();
diff --git a/Swiften/Client/CoreClient.h b/Swiften/Client/CoreClient.h
index a0c7092..925a357 100644
--- a/Swiften/Client/CoreClient.h
+++ b/Swiften/Client/CoreClient.h
@@ -202,7 +202,6 @@ namespace Swift {
 			void handleDataWritten(const String&);
 
 		private:
-			PlatformDomainNameResolver resolver_;
 			JID jid_;
 			String password_;
 			EventLoop* eventLoop;
diff --git a/Swiften/Network/BoostNetworkFactories.cpp b/Swiften/Network/BoostNetworkFactories.cpp
index fc52b08..b9d5b49 100644
--- a/Swiften/Network/BoostNetworkFactories.cpp
+++ b/Swiften/Network/BoostNetworkFactories.cpp
@@ -7,15 +7,18 @@
 #include "Swiften/Network/BoostNetworkFactories.h"
 #include "Swiften/Network/BoostTimerFactory.h"
 #include "Swiften/Network/BoostConnectionFactory.h"
+#include <Swiften/Network/PlatformDomainNameResolver.h>
 
 namespace Swift {
 
 BoostNetworkFactories::BoostNetworkFactories(EventLoop* eventLoop) {
 	timerFactory = new BoostTimerFactory(&ioServiceThread.getIOService(), eventLoop);	
-	connectionFactory = new BoostConnectionFactory(&ioServiceThread.getIOService(), eventLoop);	
+	connectionFactory = new BoostConnectionFactory(&ioServiceThread.getIOService(), eventLoop);
+	domainNameResolver = new PlatformDomainNameResolver(eventLoop);
 }
 
 BoostNetworkFactories::~BoostNetworkFactories() {
+	delete domainNameResolver;
 	delete connectionFactory;
 	delete timerFactory;
 }
diff --git a/Swiften/Network/BoostNetworkFactories.h b/Swiften/Network/BoostNetworkFactories.h
index 3f8b557..cb7e359 100644
--- a/Swiften/Network/BoostNetworkFactories.h
+++ b/Swiften/Network/BoostNetworkFactories.h
@@ -29,9 +29,14 @@ namespace Swift {
 				return &ioServiceThread;
 			}
 
+			DomainNameResolver* getDomainNameResolver() const {
+				return domainNameResolver;
+			}
+
 		private:
 			BoostIOServiceThread ioServiceThread;
 			TimerFactory* timerFactory;
 			ConnectionFactory* connectionFactory;
+			DomainNameResolver* domainNameResolver;
 	};
 }
diff --git a/Swiften/Network/NetworkFactories.h b/Swiften/Network/NetworkFactories.h
index 23e2780..b4400bd 100644
--- a/Swiften/Network/NetworkFactories.h
+++ b/Swiften/Network/NetworkFactories.h
@@ -9,6 +9,7 @@
 namespace Swift {
 	class TimerFactory;
 	class ConnectionFactory;
+	class DomainNameResolver;
 
 	/**
 	 * An interface collecting network factories.
@@ -19,5 +20,6 @@ namespace Swift {
 
 			virtual TimerFactory* getTimerFactory() const = 0;
 			virtual ConnectionFactory* getConnectionFactory() const = 0;
+			virtual DomainNameResolver* getDomainNameResolver() const = 0;
 	};
 }
-- 
cgit v0.10.2-6-g49f6