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;