Nmap Development mailing list archives
Re: Stupid patch... autostat every x seconds
From: David Fifield <david () bamsoftware com>
Date: Mon, 16 Feb 2009 17:52:12 -0700
On Tue, Jan 06, 2009 at 10:28:33PM +0100, Aleksandar Petrinic wrote:
Now I have write a very little patch for nmap that enables another option... --auto-stats <seconds> that print a stats every <seconds> seconds. I don't know if it could be usefull for someone, but I have tried. The diff is in the attachment. Well, maybe it's not the cleaner, but works(it isn't much accurate too). One thing that confuse me it's where I have to put a temporary global variable, for now I put it in the NmapOps, even if I immagine that it's not properly the right place. With this patch I can syncronize a progress bar with nmap's stats fine.
I made another patch, based on yours, with a few changes. I changed the option name to --stats-every. It takes a time specification like all the other timing options, defaulting to milliseconds and allowing a 's', 'm', 'h' suffix. This implementation only adds one new member to NmapOps. State is limited to the scope of one function. The scheduler is accurate. Output goes all the same places it normally goes when you press a key, including XML output. It looks like $ nmap scanme.nmap.org -p- --stats-every 5s Starting Nmap 4.85BETA3 ( http://nmap.org ) at 2009-02-16 17:45 MST Stats: 0:00:05 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan Connect Scan Timing: About 0.83% done Stats: 0:00:10 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan Connect Scan Timing: About 1.63% done; ETC: 17:55 (0:10:02 remaining) Stats: 0:00:15 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan Connect Scan Timing: About 3.24% done; ETC: 17:53 (0:07:27 remaining) Stats: 0:00:20 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan Connect Scan Timing: About 5.32% done; ETC: 17:51 (0:05:56 remaining) Stats: 0:00:25 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan Connect Scan Timing: About 7.76% done; ETC: 17:50 (0:04:57 remaining) What do you all think? What's your opinion of the option name? --stats-every maybe doesn't make sense in isolation but it works really well if you read the command to yourself. My primary misgiving is putting this in the function keyWasPressed in nmap_tty.cc. That function already does more than its name suggests: 1. Check for a keypress. 2. If it's one of the runtime interaction keys, do the corresponding function and return false. 3. If not, print a global status message and return true, indicating that the caller should print a status message too. But the way in which keyWasPressed is used: if (keyWasPressed()) { USI->SPM->printStats(USI->getCompletionFraction(), NULL); } made it hard to find a better name. David Fifield
Attachment:
stats-every.diff
Description:
_______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://SecLists.Org
Current thread:
- Stupid patch... autostat every x seconds Aleksandar Petrinic (Jan 06)
- Re: Stupid patch... autostat every x seconds David Fifield (Jan 25)
- Re: Stupid patch... autostat every x seconds David Fifield (Feb 16)
- Re: Stupid patch... autostat every x seconds Arturo 'Buanzo' Busleiman (Feb 17)
- Re: Stupid patch... autostat every x seconds David Fifield (Feb 17)
- Message not available
- Re: Stupid patch... autostat every x seconds Aleksandar Petrinic (Feb 19)
- Re: Stupid patch... autostat every x seconds Arturo 'Buanzo' Busleiman (Feb 17)
- Re: Stupid patch... autostat every x seconds David Fifield (Feb 23)