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

Use a separate variable for srtt - delta.

Previously the "delta" variable, representing the measured rtt, was
cobbered in place to be srtt - delta in one branch. This was confusing
when a later output message printed "delta", which could have a
different meaning depending on which path was taken.
This commit is contained in:
david
2012-03-18 05:41:23 +00:00
parent f592b85e59
commit 937d6bebef

View File

@@ -151,23 +151,24 @@ void adjust_timeouts2(const struct timeval *sent,
to->srtt = delta;
to->rttvar = MAX(5000, MIN(to->srtt, 2000000));
to->timeout = to->srtt + (to->rttvar << 2);
}
else {
} else {
long rttdelta;
if (delta >= 8000000 || delta < 0) {
if (o.verbose)
error("%s: packet supposedly had rtt of %ld microseconds. Ignoring time.", __func__, delta);
return;
}
delta -= to->srtt;
rttdelta = delta - to->srtt;
/* sanity check 2*/
if (delta > 1500000 && delta > 3 * to->srtt + 2 * to->rttvar) {
if (rttdelta > 1500000 && rttdelta > 3 * to->srtt + 2 * to->rttvar) {
if (o.debugging) {
log_write(LOG_STDOUT, "Bogus delta: %ld (srtt %d) ... ignoring\n", delta, to->srtt);
log_write(LOG_STDOUT, "Bogus rttdelta: %ld (srtt %d) ... ignoring\n", rttdelta, to->srtt);
}
return;
}
to->srtt += delta >> 3;
to->rttvar += (ABS(delta) - to->rttvar) >> 2;
to->srtt += rttdelta >> 3;
to->rttvar += (ABS(rttdelta) - to->rttvar) >> 2;
to->timeout = to->srtt + (to->rttvar << 2);
}
if (to->rttvar > 2300000) {