Nmap Development mailing list archives
Re: [nmap-svn] r27349 - in nmap: . nselib scripts
From: Patrick Donnelly <batrick () batbytes com>
Date: Tue, 6 Dec 2011 18:21:56 -0500
Some standard Lua idiom suggestions below for the httpspider.lua library: On Tue, Dec 6, 2011 at 5:47 PM, <commit-mailer () insecure org> wrote:
Added: nmap/nselib/httpspider.lua [...] +module(... or "httpspider", package.seeall) + +require 'http' + +local LIBRARY_NAME = "httpspider"
You can also use _PACKAGE which is set by module [1] instead of LIBRARY_NAME. Also, the '... or "httpspider"' idiom is something silly I encouraged a long time ago. In the future it will probably be a hard coded value when we switch to Lua 5.2. (Feel free to stop doing it.) [1] http://www.lua.org/manual/5.1/manual.html#pdf-module
+ for _, pattern in ipairs(patterns) do + for l in self.html:gfind(pattern) do
gfind was renamed gmatch in Lua 5.1. (It still works with compatibility flags set, as is often the case.)
+ -- pull links from the queue until we get a valid one + local url + repeat + url = self.urlqueue:getNext() + until( not(url) or not(self.processed[tostring(url)]) )
url remains in scope in the until terminating expression. You can do instead:
+ -- pull links from the queue until we get a valid one + repeat + local url = self.urlqueue:getNext() + until( not(url) or not(self.processed[tostring(url)]) )
Added: nmap/scripts/http-email-harvest.nse [...] +function action(host, port) + local EMAIL_PATTERN = "[A-Za-z0-9%.%%%+%-]+@[A-Za-z0-9%.%%%+%-]+%.%w%w%w?%w?" + + -- by default, we cap the script at a maximum depth of 3 + local maxdepth = tonumber(stdnse.get_script_args("http-email-harvest.maxdepth")) or 3 + -- by default, we cap the script at a maximum pagecount of 20 + local maxpagecount = tonumber(stdnse.get_script_args("http-email-harvest.maxpagecount")) or 20 + + local url = stdnse.get_script_args("http-email-harvest.url") or "/" + local withinhost = stdnse.get_script_args("http-email-harvest.withinhost") + local withindomain = stdnse.get_script_args("http-email-harvest.withindomain")
I see this done a lot in scripts. These constants/script arguments can be pulled out of the action function. Script argument parsing is always done before scripts are loaded. It's good to see this in the trunk now! Thanks Patrik and Paulino for your work on this. -- - Patrick Donnelly _______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://seclists.org/nmap-dev/
Current thread:
- Re: [nmap-svn] r27349 - in nmap: . nselib scripts Patrick Donnelly (Dec 06)
- Re: [nmap-svn] r27349 - in nmap: . nselib scripts Patrik Karlsson (Dec 06)
- Re: [nmap-svn] r27349 - in nmap: . nselib scripts Patrick Donnelly (Dec 06)
- Re: [nmap-svn] r27349 - in nmap: . nselib scripts Patrik Karlsson (Dec 06)