From d321b10cb84b4ebb919b62de50c76aac6eb72a4d Mon Sep 17 00:00:00 2001 From: Tobias Markmann <tm@ayena.de> Date: Wed, 8 Apr 2015 21:37:51 +0200 Subject: Skip name lookup if manual hostname is a valid IP address Removed dead debugging code and unnecessary includes as well. Test-Information: Tested with Swiften/QA/ClientTest, adjusted to have a manual hostname set in the ClientOptions. Tested on OS X 10.9.5, with NDK API level 14 on an emulated Android 4.0 ARM instance. Without this patch the connector timed out during name lookup trying to resolve the IP set in the ClientOptions::manualHostname. With this patch it skips lookup and connects successfully. Tested and verified unchanged behavior with this patch and without the manual address override set. Change-Id: I737327b2e66c9da78a1963e754bcf201b7d40626 diff --git a/Swiften/Network/Connector.cpp b/Swiften/Network/Connector.cpp index cb062d7..5510acb 100644 --- a/Swiften/Network/Connector.cpp +++ b/Swiften/Network/Connector.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010 Isode Limited. + * Copyright (c) 2010-2015 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ @@ -7,13 +7,13 @@ #include <Swiften/Network/Connector.h> #include <boost/bind.hpp> -#include <iostream> +#include <Swiften/Base/Log.h> #include <Swiften/Network/ConnectionFactory.h> -#include <Swiften/Network/DomainNameResolver.h> #include <Swiften/Network/DomainNameAddressQuery.h> +#include <Swiften/Network/DomainNameResolver.h> +#include <Swiften/Network/HostAddress.h> #include <Swiften/Network/TimerFactory.h> -#include <Swiften/Base/Log.h> namespace Swift { @@ -26,7 +26,6 @@ void Connector::setTimeoutMilliseconds(int milliseconds) { void Connector::start() { SWIFT_LOG(debug) << "Starting connector for " << hostname << std::endl; - //std::cout << "Connector::start()" << std::endl; assert(!currentConnection); assert(!serviceQuery); assert(!timer); @@ -40,7 +39,12 @@ void Connector::start() { serviceQuery->onResult.connect(boost::bind(&Connector::handleServiceQueryResult, shared_from_this(), _1)); serviceQuery->run(); } - else { + else if (HostAddress(hostname).isValid()) { + // hostname is already a valid address; skip name lookup. + foundSomeDNS = true; + addressQueryResults.push_back(HostAddress(hostname)); + tryNextAddress(); + } else { queryAddress(hostname); } } -- cgit v0.10.2-6-g49f6