diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-04-05 12:10:17 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-04-06 19:31:39 (GMT) |
commit | 725c4e1ad0710606421f9705d994688116a9fc1f (patch) | |
tree | c9297107c494e0858d6c626ae91936462add72e1 /Swiften/Network/PlatformDomainNameResolver.cpp | |
parent | 29be0c8e4ebecd007ea0787a6c6decfedc4b4e4f (diff) | |
download | swift-contrib-725c4e1ad0710606421f9705d994688116a9fc1f.zip swift-contrib-725c4e1ad0710606421f9705d994688116a9fc1f.tar.bz2 |
Refactored DomainNameAddressQuery.
Result can now consist of multiple addresses.
Diffstat (limited to 'Swiften/Network/PlatformDomainNameResolver.cpp')
-rw-r--r-- | Swiften/Network/PlatformDomainNameResolver.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Swiften/Network/PlatformDomainNameResolver.cpp b/Swiften/Network/PlatformDomainNameResolver.cpp index 7b8a6d5..636eac9 100644 --- a/Swiften/Network/PlatformDomainNameResolver.cpp +++ b/Swiften/Network/PlatformDomainNameResolver.cpp @@ -51,11 +51,15 @@ namespace { emitError(); } else { - boost::asio::ip::address address = (*endpointIterator).endpoint().address(); - HostAddress result = (address.is_v4() ? HostAddress(&address.to_v4().to_bytes()[0], 4) : HostAddress(&address.to_v6().to_bytes()[0], 16)); + std::vector<HostAddress> results; + for ( ; endpointIterator != boost::asio::ip::tcp::resolver::iterator(); ++endpointIterator) { + boost::asio::ip::address address = (*endpointIterator).endpoint().address(); + results.push_back(address.is_v4() ? HostAddress(&address.to_v4().to_bytes()[0], 4) : HostAddress(&address.to_v6().to_bytes()[0], 16)); + } + //std::cout << "PlatformDomainNameResolver::doRun(): Success" << std::endl; MainEventLoop::postEvent( - boost::bind(boost::ref(onResult), result, boost::optional<DomainNameResolveError>()), + boost::bind(boost::ref(onResult), results, boost::optional<DomainNameResolveError>()), shared_from_this()); } } @@ -67,7 +71,7 @@ namespace { } void emitError() { - MainEventLoop::postEvent(boost::bind(boost::ref(onResult), HostAddress(), boost::optional<DomainNameResolveError>(DomainNameResolveError())), shared_from_this()); + MainEventLoop::postEvent(boost::bind(boost::ref(onResult), std::vector<HostAddress>(), boost::optional<DomainNameResolveError>(DomainNameResolveError())), shared_from_this()); } boost::asio::io_service ioService; |