diff --git a/CHANGELOG b/CHANGELOG index c2947147d..e21556370 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -66,13 +66,14 @@ Nmap 4.20ALPHA4 o Nmap now provides progress statistics in the XML output in verbose mode. Here are some examples of the format (etc is "estimated time - until completion) and times are in UNIX time_t (seconds since 1970) format: - - - - - + until completion) and times are in UNIX time_t (seconds since 1970) + format. Angle braces have been replaced by square braces: + [taskbegin task="SYN Stealth Scan" time="1151384685" /] + [taskprogress task="SYN Stealth Scan" time="1151384715" + percent="13.85" remaining="187" etc="1151384902" /] + [taskend task="SYN Stealth Scan" time="1151384776" /] + [taskbegin task="Service scan" time="1151384776" /] + [taskend task="Service scan" time="1151384788" /] Thanks to Adam Vartanian (flooey(a)gmail.com) for the patch. o Updated the Windows installer to give an option checkbox for diff --git a/FingerPrintResults.cc b/FingerPrintResults.cc index 3a7de3e4d..d6029d1d5 100644 --- a/FingerPrintResults.cc +++ b/FingerPrintResults.cc @@ -140,9 +140,12 @@ const struct OS_Classification_Results *FingerPrintResults::getOSClassification( for skipping the FP is returned as a static string. If the FP is great and should be printed, NULL is returned. */ const char *FingerPrintResults::OmitSubmissionFP() { + static char reason[128]; - if (o.scan_delay > 500) // This can screw up the sequence timing - return "Scan delay is greater than 500"; + if (o.scan_delay > 500) { // This can screw up the sequence timing + snprintf(reason, sizeof(reason), "Scan delay (%d) is greater than 500", o.scan_delay); + return reason; + } if (o.timing_level > 4) return "Timing level 5 (Insane) used"; @@ -156,11 +159,15 @@ const char *FingerPrintResults::OmitSubmissionFP() { // I'm not sure this is really necessary, but maybe. Large routes // can cause asymetric routing which leads to wrong TTL information. // They can cause variable timing too. - if (distance > 10) - return "Host more than ten network hops away"; + if (distance > 10) { + snprintf(reason, sizeof(reason), "Host distance (%d network hops) is greater than ten", distance); + return reason; + } - if (maxTimingRatio > 1.4) - return "maxTimingRatio is greater than 1.4"; + if (maxTimingRatio > 1.4) { + snprintf(reason, sizeof(reason), "maxTimingRatio (%f) is greater than 1.4"); + return reason; + } if (osscan_closedudpport < 0 && !o.udpscan) { /* If we didn't get a U1 response, that might be just diff --git a/Makefile.in b/Makefile.in index 6c6606c18..7967e0b61 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,6 +1,6 @@ export NMAP_VERSION = 4.20ALPHA5 NMAP_NAME= Nmap -NMAP_URL= http://insecure.org/nmap/ +NMAP_URL= http://Insecure.Org NMAP_PLATFORM=@host@ prefix = @prefix@ exec_prefix = @exec_prefix@ diff --git a/nmap.cc b/nmap.cc index 0216e7122..f04e55cbb 100644 --- a/nmap.cc +++ b/nmap.cc @@ -1370,7 +1370,7 @@ int nmap_main(int argc, char *argv[]) { printf("--------------- Timing report ---------------\n"); printf(" hostgroups: min %d, max %d\n", o.minHostGroupSz(), o.maxHostGroupSz()); printf(" rtt-timeouts: init %d, min %d, max %d\n", o.initialRttTimeout(), o.minRttTimeout(), o.maxRttTimeout()); - printf(" scan-delay: TCP %d, UDP %d\n", o.maxTCPScanDelay(), o.maxUDPScanDelay()); + printf(" msx-scan-delay: TCP %d, UDP %d\n", o.maxTCPScanDelay(), o.maxUDPScanDelay()); printf(" parallelism: min %d, max %d\n", o.min_parallelism, o.max_parallelism); printf(" max-retries: %d, host-timeout: %ld\n", o.getMaxRetransmissions(), o.host_timeout); printf("---------------------------------------------\n"); diff --git a/nmap_dns.cc b/nmap_dns.cc index 440caa3b3..6d0262317 100644 --- a/nmap_dns.cc +++ b/nmap_dns.cc @@ -569,9 +569,9 @@ static u32 parse_inaddr_arpa(unsigned char *buf, int maxlen) { u32 ip=0; int i, j; - for (i=0; i<=3; i++) { - if (maxlen <= 0) return 0; + if (maxlen <= 0) return 0; + for (i=0; i<=3; i++) { if (buf[0] < 1 || buf[0] > 3) return 0; maxlen -= buf[0] + 1;