Nmap Development mailing list archives
RE: Question on NSE script output
From: "Sina Bahram" <sbahram () nc rr com>
Date: Sat, 6 Jun 2009 00:59:58 -0400
Must have done it wrong then. And I misspoke, I'm sorry. I received an error message with the print (when I was just playing around in lua on the cli), as you cleared up for me ... What happened when I made the modification was I started receiving nothing at all for the output. I probably in some way concatted with null? Been a long day, sorry again for messing that up. I'll try it again tomorrow, and send stuff to you. Take care, Sina -----Original Message----- From: nmap-dev-bounces () insecure org [mailto:nmap-dev-bounces () insecure org] On Behalf Of David Fifield Sent: Saturday, June 06, 2009 12:37 AM To: Sina Bahram Cc: 'nmap-dev' Subject: Re: Question on NSE script output On Sat, Jun 06, 2009 at 12:03:35AM -0400, Sina Bahram wrote:
Unless if I did it wrong, you can't actually do this: return host.ip .. " Anonymous FTP login allowed" Let me preface with, I'm a programmer, but not a LUA one. Here's what I've discovered. If you are printing something, then unless if you have parentheses around it, you can't inline concat a string. Even if you assign it to a local variable first, then pass the variable to the print. Probably because it does expansion at that point, just like lisp or something.
That is a separate issue. print is a function, not a keyword like return. Function calls normally require parentheses around the arguments. The exception to this rule is if there is only one argument, and it is a literal string or a table constructor. So you can do print(x) print "Hello" But not print x print "Hello" .. " world" See http://www.lua.org/manual/5.1/manual.html#2.5.8
Since we're returning a string, not printing it ... I'm not sure if the print that eventually gets called has parentheses around it; thus, when I tried to do the line of code above, almost exactly what you wrote as your suggestion in your email, I got the same error as if I had done a print
with
a string being concatted without parentheses around it. Does this make sense?
No, expression is evaluated and converted to a string before the return. Whatever error message you see must be cause by something else. I don't know why the line of code above doesn't work for you. I copied it directly from the script after testing the modification. Can you copy in the error message you see? A return statement must be the last thing in a block, so if you moved the return, it may not work. David Fifield _______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://SecLists.Org _______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://SecLists.Org
Current thread:
- Question on NSE script output Sina Bahram (Jun 04)
- Re: Question on NSE script output David Fifield (Jun 05)
- RE: Question on NSE script output Sina Bahram (Jun 05)
- Re: Question on NSE script output David Fifield (Jun 05)
- RE: Question on NSE script output Sina Bahram (Jun 05)
- RE: Question on NSE script output Sina Bahram (Jun 05)
- Re: Question on NSE script output David Fifield (Jun 05)