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/Connector.cpp | |
parent | 29be0c8e4ebecd007ea0787a6c6decfedc4b4e4f (diff) | |
download | swift-725c4e1ad0710606421f9705d994688116a9fc1f.zip swift-725c4e1ad0710606421f9705d994688116a9fc1f.tar.bz2 |
Refactored DomainNameAddressQuery.
Result can now consist of multiple addresses.
Diffstat (limited to 'Swiften/Network/Connector.cpp')
-rw-r--r-- | Swiften/Network/Connector.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Swiften/Network/Connector.cpp b/Swiften/Network/Connector.cpp index d372bf2..ff45481 100644 --- a/Swiften/Network/Connector.cpp +++ b/Swiften/Network/Connector.cpp @@ -64,22 +64,22 @@ void Connector::tryNextHostname() { } } -void Connector::handleAddressQueryResult(const HostAddress& address, boost::optional<DomainNameResolveError> error) { +void Connector::handleAddressQueryResult(const std::vector<HostAddress>& addresses, boost::optional<DomainNameResolveError> error) { //std::cout << "Connector::handleAddressQueryResult(): Start" << std::endl; addressQuery.reset(); if (!serviceQueryResults.empty()) { DomainNameServiceQuery::Result serviceQueryResult = serviceQueryResults.front(); serviceQueryResults.pop_front(); - if (error) { + if (error || addresses.empty()) { //std::cout << "Connector::handleAddressQueryResult(): A lookup for SRV host " << serviceQueryResult.hostname << " failed." << std::endl; tryNextHostname(); } else { //std::cout << "Connector::handleAddressQueryResult(): A lookup for SRV host " << serviceQueryResult.hostname << " succeeded: " << address.toString() << std::endl; - tryConnect(HostAddressPort(address, serviceQueryResult.port)); + tryConnect(HostAddressPort(addresses[0], serviceQueryResult.port)); } } - else if (error) { + else if (error || addresses.empty()) { //std::cout << "Connector::handleAddressQueryResult(): Fallback address query failed. Giving up" << std::endl; // The fallback address query failed assert(queriedAllHosts); @@ -88,7 +88,7 @@ void Connector::handleAddressQueryResult(const HostAddress& address, boost::opti else { //std::cout << "Connector::handleAddressQueryResult(): Fallback address query succeeded: " << address.toString() << std::endl; // The fallback query succeeded - tryConnect(HostAddressPort(address, 5222)); + tryConnect(HostAddressPort(addresses[0], 5222)); } } |