diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-04-07 18:52:52 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-04-07 18:52:52 (GMT) |
commit | 8fc68f601b92dc4d0fa378c1d9fa2114e379f7ce (patch) | |
tree | 34848a87fdaa6bfd398a5bbce0245d2df6a57d71 | |
parent | 725c4e1ad0710606421f9705d994688116a9fc1f (diff) | |
download | swift-contrib-8fc68f601b92dc4d0fa378c1d9fa2114e379f7ce.zip swift-contrib-8fc68f601b92dc4d0fa378c1d9fa2114e379f7ce.tar.bz2 |
Add support for multiple A entries to StaticDomainNameResolver.
-rw-r--r-- | Swiften/Network/StaticDomainNameResolver.cpp | 10 | ||||
-rw-r--r-- | Swiften/Network/StaticDomainNameResolver.h | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/Swiften/Network/StaticDomainNameResolver.cpp b/Swiften/Network/StaticDomainNameResolver.cpp index a751fdd..196176f 100644 --- a/Swiften/Network/StaticDomainNameResolver.cpp +++ b/Swiften/Network/StaticDomainNameResolver.cpp @@ -38,10 +38,8 @@ namespace { } StaticDomainNameResolver::AddressesMap::const_iterator i = resolver->getAddresses().find(host); if (i != resolver->getAddresses().end()) { - std::vector<HostAddress> result; - result.push_back(i->second); MainEventLoop::postEvent( - boost::bind(boost::ref(onResult), result, boost::optional<DomainNameResolveError>())); + boost::bind(boost::ref(onResult), i->second, boost::optional<DomainNameResolveError>())); } else { MainEventLoop::postEvent(boost::bind(boost::ref(onResult), std::vector<HostAddress>(), boost::optional<DomainNameResolveError>(DomainNameResolveError()))); @@ -60,7 +58,7 @@ StaticDomainNameResolver::StaticDomainNameResolver() : isResponsive(true) { } void StaticDomainNameResolver::addAddress(const String& domain, const HostAddress& address) { - addresses[domain] = address; + addresses[domain].push_back(address); } void StaticDomainNameResolver::addService(const String& service, const DomainNameServiceQuery::Result& result) { @@ -76,6 +74,10 @@ void StaticDomainNameResolver::addXMPPClientService(const String& domain, const addAddress(hostname, address.getAddress()); } +void StaticDomainNameResolver::addXMPPClientService(const String& domain, const String& hostname, int port) { + addService("_xmpp-client._tcp." + domain, ServiceQuery::Result(hostname, port, 0, 0)); +} + boost::shared_ptr<DomainNameServiceQuery> StaticDomainNameResolver::createServiceQuery(const String& name) { return boost::shared_ptr<DomainNameServiceQuery>(new ServiceQuery(name, this)); } diff --git a/Swiften/Network/StaticDomainNameResolver.h b/Swiften/Network/StaticDomainNameResolver.h index d7e7ba4..2428d29 100644 --- a/Swiften/Network/StaticDomainNameResolver.h +++ b/Swiften/Network/StaticDomainNameResolver.h @@ -15,7 +15,7 @@ namespace Swift { class StaticDomainNameResolver : public DomainNameResolver { public: - typedef std::map<String, HostAddress> AddressesMap; + typedef std::map<String, std::vector<HostAddress> > AddressesMap; typedef std::vector< std::pair<String, DomainNameServiceQuery::Result> > ServicesCollection; public: @@ -24,6 +24,7 @@ namespace Swift { void addAddress(const String& domain, const HostAddress& address); void addService(const String& service, const DomainNameServiceQuery::Result& result); void addXMPPClientService(const String& domain, const HostAddressPort&); + void addXMPPClientService(const String& domain, const String& host, int port); const AddressesMap& getAddresses() const { return addresses; |