From e8392e7cca9def0ce868f94d9f62df8d82247836 Mon Sep 17 00:00:00 2001 From: dmiller Date: Thu, 11 Jun 2026 17:56:27 +0000 Subject: [PATCH] Fix Windows build and silence some warnings --- libnetutil/massdns.cc | 29 ++++++++++++++--------------- libnetutil/massdns.h | 6 +++++- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/libnetutil/massdns.cc b/libnetutil/massdns.cc index e2e70aab0..ea0e96d2b 100644 --- a/libnetutil/massdns.cc +++ b/libnetutil/massdns.cc @@ -110,22 +110,21 @@ // // * Figure out best way to estimate completion time // and display it in a ScanProgressMeter - -#include "massdns.h" -#include "netutil.h" -#include -#include -#include -//#include -#include -#include -#include - #ifdef WIN32 #include #include #endif +#include +#include +#include +#include +#include "massdns.h" +#include "netutil.h" +#include +#include + + // From nmap.h #ifndef MIN_RTT_TIMEOUT #define MIN_RTT_TIMEOUT 100 @@ -218,7 +217,7 @@ struct dns_server { std::list to_process; std::list in_process; struct timeval last_increase; - dns_server(DNS::ResolverImpl *i) : impl(i), hostname(), addr_len(0), status(DISCONNECTED), reqs_on_wire(0), + dns_server(DNS::ResolverImpl *i) : impl(i), hostname(), addr_len(0), nsd(NULL), status(DISCONNECTED), reqs_on_wire(0), capacity(CAPACITY_MIN), ssthresh((CAPACITY_MAX + CAPACITY_MIN)/2), write_busy(0), to_process(), in_process() { memset(&addr, 0, sizeof(addr)); @@ -738,7 +737,7 @@ bool DNS::ResolverImpl::resolve_nsock() connect_dns_servers(); - int read_timeout_index = MIN(sizeof(read_timeouts)/sizeof(read_timeouts[0]), servs.size()) - 1; + int read_timeout_index = MIN(sizeof(default_read_timeouts)/sizeof(default_read_timeouts[0]), servs.size()) - 1; read_timeouts = default_read_timeouts[read_timeout_index]; int timeout = 0; @@ -1600,8 +1599,8 @@ void DNS::ResolverImpl::etchosts_init(void) { char tpbuf[2048]; int has_backslash; - if (!GetWindowsDirectory(windows_dir, sizeof(windows_dir))) - log_func(0, "Failed to determine your windows directory"); + if (!GetWindowsDirectoryA(windows_dir, sizeof(windows_dir))) + fprintf(stderr, "massdns: Failed to determine your windows directory\n"); // If it has a backslash it's C:\, otherwise something like C:\WINNT has_backslash = (windows_dir[strlen(windows_dir)-1] == '\\'); diff --git a/libnetutil/massdns.h b/libnetutil/massdns.h index b25cf362f..7e1f27e15 100644 --- a/libnetutil/massdns.h +++ b/libnetutil/massdns.h @@ -157,6 +157,7 @@ class A_Record : public Record { public: sockaddr_storage value; + A_Record() : value() {} Record * clone() { return new A_Record(*this); } ~A_Record() {} size_t parseFromBuffer(const u8 *buf, size_t offset, size_t maxlen, RECORD_TYPE rt); @@ -189,6 +190,7 @@ public: class Query { public: + Query() : record_type(RECORD_TYPE::NONE), record_class(RECORD_CLASS::CLASS_IN) {} std::string name; u16 record_type; u16 record_class; @@ -199,7 +201,9 @@ public: class Answer { public: - Answer() : record(NULL) {} + Answer() : record_type(RECORD_TYPE::NONE), + record_class(RECORD_CLASS::CLASS_IN), ttl(0), length(0), + record(NULL) {} Answer(const Answer &c) : name(c.name), record_type(c.record_type), record_class(c.record_class), ttl(c.ttl), length(c.length), record(c.record->clone()) {}