summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2010-04-05 12:10:17 (GMT)
committerRemko Tronçon <git@el-tramo.be>2010-04-06 19:31:39 (GMT)
commit725c4e1ad0710606421f9705d994688116a9fc1f (patch)
treec9297107c494e0858d6c626ae91936462add72e1 /Swiften/Network/Connector.cpp
parent29be0c8e4ebecd007ea0787a6c6decfedc4b4e4f (diff)
downloadswift-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.cpp10
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));
}
}