1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-06 04:31:29 +00:00

Rate-limit capacity scale-downs to 1 per MIN_DNS_TIMEOUT

This commit is contained in:
dmiller
2024-05-16 19:31:47 +00:00
parent 1e964d30f5
commit c80bc2efb2

View File

@@ -556,7 +556,7 @@ static int deal_with_timedout_reads(bool adjust_timing) {
if (nextI == servI->in_process.end()) continue;
struct timeval earliest_sent = now;
bool adjusted = false;
bool adjusted = !adjust_timing;
bool may_increase = adjust_timing;
do {
reqI = nextI++;
@@ -1195,7 +1195,7 @@ static void nmap_mass_dns_core(DNS::Request *requests, int num_requests) {
std::list<request *>::iterator reqI;
request *tpreq;
int timeout;
int timeout = 0;
int i;
char spmobuf[1024];
@@ -1280,8 +1280,16 @@ static void nmap_mass_dns_core(DNS::Request *requests, int num_requests) {
SPM = new ScanProgressMeter(spmobuf);
stat_actual = total_reqs;
int since_last = 0;
while (total_reqs > 0) {
timeout = deal_with_timedout_reads(true);
since_last += timeout;
if (since_last > MIN_DNS_TIMEOUT) {
since_last = 0;
timeout = deal_with_timedout_reads(true);
}
else {
timeout = deal_with_timedout_reads(false);
}
do_possible_writes();