From e15c6fd319af1303db47f00e78e4ec42d0605279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Thu, 3 Dec 2009 08:43:30 +0100 Subject: Fixed unit tests. diff --git a/Swiften/Network/SRVRecordPriorityComparator.h b/Swiften/Network/SRVRecordPriorityComparator.h deleted file mode 100644 index fc16597..0000000 --- a/Swiften/Network/SRVRecordPriorityComparator.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -#include "Swiften/Network/SRVRecord.h" - -namespace Swift { - struct SRVRecordPriorityComparator { - bool operator()(const SRVRecord& a, const SRVRecord& b) const { - return a.priority < b.priority; - } - }; -} diff --git a/Swiften/Network/StaticDomainNameResolver.cpp b/Swiften/Network/StaticDomainNameResolver.cpp index 275ec78..609bbdd 100644 --- a/Swiften/Network/StaticDomainNameResolver.cpp +++ b/Swiften/Network/StaticDomainNameResolver.cpp @@ -1,24 +1,44 @@ #include "Swiften/Network/StaticDomainNameResolver.h" + +#include +#include + #include "Swiften/Network/DomainNameResolveError.h" #include "Swiften/Base/String.h" using namespace Swift; namespace { - struct ServiceQuery : public DomainNameServiceQuery { + struct ServiceQuery : public DomainNameServiceQuery, public EventOwner { ServiceQuery(const String& service, Swift::StaticDomainNameResolver* resolver) : service(service), resolver(resolver) {} virtual void run() { + std::vector results; + for(StaticDomainNameResolver::ServicesCollection::const_iterator i = resolver->getServices().begin(); i != resolver->getServices().end(); ++i) { + if (i->first == service) { + results.push_back(i->second); + } + } + MainEventLoop::postEvent(boost::bind(boost::ref(onResult), results)); } String service; StaticDomainNameResolver* resolver; }; - struct AddressQuery : public DomainNameAddressQuery { + struct AddressQuery : public DomainNameAddressQuery, public EventOwner { AddressQuery(const String& host, StaticDomainNameResolver* resolver) : host(host), resolver(resolver) {} virtual void run() { + StaticDomainNameResolver::AddressesMap::const_iterator i = resolver->getAddresses().find(host); + if (i != resolver->getAddresses().end()) { + MainEventLoop::postEvent( + boost::bind(boost::ref(onResult), i->second, boost::optional())); + } + else { + MainEventLoop::postEvent(boost::bind(boost::ref(onResult), HostAddress(), boost::optional(DomainNameResolveError()))); + } + } String host; @@ -37,8 +57,12 @@ void StaticDomainNameResolver::addService(const String& service, const DomainNam } void StaticDomainNameResolver::addXMPPClientService(const String& domain, const HostAddressPort& address) { - addService("_xmpp-client._tcp." + domain, ServiceQuery::Result(domain, 5222, 0, 0)); - addAddress(domain, address.getAddress()); + static int hostid = 0; + String hostname(std::string("host-") + boost::lexical_cast(hostid)); + hostid++; + + addService("_xmpp-client._tcp." + domain, ServiceQuery::Result(hostname, address.getPort(), 0, 0)); + addAddress(hostname, address.getAddress()); } boost::shared_ptr StaticDomainNameResolver::createServiceQuery(const String& name) { diff --git a/Swiften/Network/StaticDomainNameResolver.h b/Swiften/Network/StaticDomainNameResolver.h index ed8c613..0e877d3 100644 --- a/Swiften/Network/StaticDomainNameResolver.h +++ b/Swiften/Network/StaticDomainNameResolver.h @@ -8,6 +8,7 @@ #include "Swiften/Network/DomainNameResolver.h" #include "Swiften/Network/DomainNameServiceQuery.h" #include "Swiften/Network/DomainNameAddressQuery.h" +#include "Swiften/EventLoop/MainEventLoop.h" namespace Swift { class String; -- cgit v0.10.2-6-g49f6