From: Christian Herdtweck Date: Tue, 26 May 2015 15:59:38 +0000 (+0200) Subject: added option to limit number of IPs per host that are saved in cache X-Git-Url: http://developer.intra2net.com/git/?p=pingcheck;a=commitdiff_plain;h=e4e1e0137f3be315e5bdef7c02353b17ec701428 added option to limit number of IPs per host that are saved in cache --- diff --git a/src/dns/dnsresolver.cpp b/src/dns/dnsresolver.cpp index ff376ea..b9e7af6 100644 --- a/src/dns/dnsresolver.cpp +++ b/src/dns/dnsresolver.cpp @@ -48,6 +48,7 @@ namespace Config const int PauseBeforeRetrySeconds = 1; const int StaleDataLongtermSeconds = 5*60; const int DNS_PORT = 53; + const std::size_t MAX_IPS_PER_HOST = 2; } DnsResolver::DnsResolver(IoServiceItem &io_serv, @@ -413,6 +414,16 @@ void DnsResolver::handle_ips(const int recursion_count, addr_list.push_back(host_and_addr.second); } } + + // limit number of IPs to be saved + if (addr_list.size() > Config::MAX_IPS_PER_HOST) + { + GlobalLogger.info() << LogPrefix << "Limit list of IPs from " + << addr_list.size() << " to " << Config::MAX_IPS_PER_HOST; + addr_list.resize(Config::MAX_IPS_PER_HOST); + } + + // now save in cache ResolverBase::update_cache( only_host_for_ips, addr_list ); // clean up