Nmap Development mailing list archives
[NSE patch] print_debug() function
From: Matthew Boyle <mb2263 () bristol ac uk>
Date: Fri, 22 Jun 2007 00:31:12 +0100
attached is a lua function which allows debug messages in scripts to use printf()-like formatting (via lua's own string.format() function):
print_debug([verbosity,] fmt, ...);i've also included a patch to nmap.print_debug_unformatted(). it saves checking a second time if the first argument is a verbosity level, by making it compulsory.
(it also includes a fix to scripts/showHTMLTitle.nse, which seems to be the only script in svn using it at the moment.)
--matt -- everybody stand back! i know regular expressions. [taptaptap]
print_debug = function(...)
local verbosity = 1;
if ((#arg > 1) and (tonumber(arg[1]))) then
verbosity = table.remove(arg, 1);
end
nmap.print_debug_unformatted(verbosity, string.format(unpack(arg, start)));
end
Index: scripts/showHTMLTitle.nse
===================================================================
--- scripts/showHTMLTitle.nse (revision 4975)
+++ scripts/showHTMLTitle.nse (working copy)
@@ -50,7 +50,7 @@
if title ~= nil then
result = string.gsub(title , "[\n\r\t]", "")
if string.len(title) > 50 then
- nmap.print_debug_unformatted("showHTMLTitle.nse: Title got truncated!");
+ nmap.print_debug("showHTMLTitle.nse: Title got truncated!");
result = string.sub(result, 1, 62) .. "..."
end
else
Index: nse_nmaplib.cc
===================================================================
--- nse_nmaplib.cc (revision 4975)
+++ nse_nmaplib.cc (working copy)
@@ -399,16 +399,16 @@
}
static int l_print_debug_unformatted(lua_State *l) {
- int verbosity=1, stack_counter(1);
+ int verbosity;
const char *out;
- if (lua_isnumber (l, 1) && (lua_gettop(l) > 1)) {
- verbosity = lua_tointeger(l, 1);
- if (verbosity > o.verbose) return 0;
- stack_counter++;
- }
- out = luaL_checkstring(l, stack_counter);
- log_write(LOG_STDOUT, "%s NSE DEBUG: %s\n", SCRIPT_ENGINE, out);
+ if (lua_gettop(l) != 2) return luaL_error(l, "Incorrect number of arguments\n");
+
+ verbosity = luaL_checkinteger(l, 1);
+ if (verbosity > o.verbose) return 0;
+ out = luaL_checkstring(l, 2);
+
+ log_write(LOG_STDOUT, "%s DEBUG: %s\n", SCRIPT_ENGINE, out);
return 0;
}
_______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://SecLists.Org
Current thread:
- [NSE patch] print_debug() function Matthew Boyle (Jun 21)
- Re: [NSE patch] print_debug() function Diman Todorov (Jun 22)
- Re: [NSE patch] print_debug() function Eddie Bell (Jun 22)
- Re: [NSE patch] print_debug() function Diman Todorov (Jun 22)
- Re: [NSE patch] print_debug() function Eddie Bell (Jun 22)
- Re: [NSE patch] print_debug() function Diman Todorov (Jun 22)
