From 84a5077d13240ced93d5c0ddc7cd68ffaf27af05 Mon Sep 17 00:00:00 2001 From: Guilherme Maciel Ferreira Date: Tue, 15 Mar 2011 12:26:59 +0100 Subject: [PATCH] Returns the amount of IPs that were resolved for the DNSResolver host. --- src/dns/dnsresolver.cpp | 10 ++++++++++ src/dns/dnsresolver.h | 1 + 2 files changed, 11 insertions(+), 0 deletions(-) diff --git a/src/dns/dnsresolver.cpp b/src/dns/dnsresolver.cpp index 849f826..54cb70a 100644 --- a/src/dns/dnsresolver.cpp +++ b/src/dns/dnsresolver.cpp @@ -24,6 +24,15 @@ DnsResolver::~DnsResolver() { } +int DnsResolver::get_resolved_ip_count() +{ + int resolved_ip_count = ResolvedHostAddressList.size(); + + BOOST_ASSERT( 1 <= resolved_ip_count ); + + return resolved_ip_count; +} + string DnsResolver::get_next_ip() { uint list_size_before = ResolvedHostAddressList.size(); @@ -53,6 +62,7 @@ void DnsResolver::resolve( string dns_address ) io_service io_service; tcp::resolver resolver( io_service ); tcp::resolver::query query( tcp::v4(), dns_address, "" ); + // TODO can throw exceptions if a host is not found tcp::resolver::iterator it_first = resolver.resolve( query ); tcp::resolver::iterator it_last = tcp::resolver::iterator(); while ( it_first != it_last ) diff --git a/src/dns/dnsresolver.h b/src/dns/dnsresolver.h index 88743f3..635b5ab 100644 --- a/src/dns/dnsresolver.h +++ b/src/dns/dnsresolver.h @@ -16,6 +16,7 @@ public: explicit DnsResolver( std::string dns_address ); virtual ~DnsResolver(); + int get_resolved_ip_count(); std::string get_next_ip(); private: -- 1.7.1