From: Guilherme Maciel Ferreira Date: Tue, 15 Mar 2011 11:26:59 +0000 (+0100) Subject: Returns the amount of IPs that were resolved for the DNSResolver host. X-Git-Tag: v1.0~138 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=84a5077d13240ced93d5c0ddc7cd68ffaf27af05;p=pingcheck Returns the amount of IPs that were resolved for the DNSResolver host. --- 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: