massdns: ensure servers are set in Init so that isMassDnsOK works

This commit is contained in:
dmiller 2026-06-10 21:39:41 +00:00
parent 6a4c9d48b3
commit 756d012567
2 changed files with 4 additions and 2 deletions

View file

@ -504,7 +504,7 @@ DNS::Resolver::Resolver()
bool DNS::Resolver::isMassDnsOK(const char **err) const
{
if (impl->servs.size() == 0) {
if (impl->servs.empty()) {
*err = "Unable to determine any DNS servers. ";
return false;
}
@ -519,6 +519,8 @@ bool DNS::Resolver::isSystemDnsOK(const char **err) const
// Actual main loop
void DNS::Resolver::Init(DNS::Request *requests, int num_requests)
{
if (impl->servs.empty())
setServers(NULL);
impl->reset();
// Set up the request structure
for (int i=0; i < num_requests; i++)

View file

@ -126,6 +126,7 @@ static DNS::Resolver *nmap_get_resolver() {
void nmap_mass_dns(DNS::Request requests[], int num_requests) {
DNS::Resolver *resolver = nmap_get_resolver();
bool use_systemdns = !o.mass_dns;
resolver->Init(requests, num_requests);
if (o.mass_dns) {
const char *errstr = NULL;
@ -140,7 +141,6 @@ void nmap_mass_dns(DNS::Request requests[], int num_requests) {
}
}
resolver->Init(requests, num_requests);
DNS::Stats stat = resolver->getStats();
char spmobuf[1024];
Snprintf(spmobuf, sizeof(spmobuf), "%s DNS resolution of %d host%s.",