From 06b661f2ef9afce0f90c7412cf866407fb7df6bf Mon Sep 17 00:00:00 2001 From: david Date: Thu, 16 Oct 2008 22:21:08 +0000 Subject: [PATCH] Fix the documentation for nmap.new_try, because it was incorrect. The result of nmap.new_try is not a function accepting another function, it is a function taking a variable number of arguments, assumed to be the return value of some function. In other words, the returned try function is not responsible for running other functions, it only sees their return values. --- docs/scripting.xml | 11 +++++++---- nselib/nmap.luadoc | 23 +++++++++++------------ 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/docs/scripting.xml b/docs/scripting.xml index 479e6c8fe..0a3676582 100644 --- a/docs/scripting.xml +++ b/docs/scripting.xml @@ -1256,9 +1256,11 @@ end follows a functional programming paradigm rather than an object oriented programming paradigm. To create an exception handler the nmap.new_try() API method is - used. This method returns a function, which takes a function - as an argument. If the function passed as an argument raises - an exception, then the script execution is aborted and no + used. This method returns a function, which takes a variable + number of arguments, assumed to be the return values of + another function. If an exception is detected in the return + values (the first return value is false), + then the script execution is aborted and no output is produced. Optionally you can pass a function to the new_try() method which will be called if an exception is caught. In this function you can perform @@ -1309,7 +1311,8 @@ try(socket:send(result)) construct consumes the indicator value and returns the remaining values. If the function failed then the second returned value must be a string describing the error - condition. Note that if the value is not nil it is + condition. Note that if the value is not + nil or false it is treated as true so you can return your value in the normal case and return nil, error description if an error occurs. diff --git a/nselib/nmap.luadoc b/nselib/nmap.luadoc index fd85668e1..07cffea78 100644 --- a/nselib/nmap.luadoc +++ b/nselib/nmap.luadoc @@ -153,25 +153,24 @@ function nmap.mutex(object) --- Creates a new exception handler. -- \n\n --- This function returns another function, which itself takes a function as an --- argument. When the returned function is called, it in turn calls the function --- passed to it as an argument, and checks the return value for an error. An --- error is signalled when the first return value of the function is false. If --- there is an error, the script will stop immediately and produce no output. --- And optional handler function can be called before the script is stopped. In --- this function you can perform any clean-up operations, such as closing --- sockets. +-- This function returns another function, an exception handler. The returned +-- function takes a variable number of arguments, which are assumed to be the +-- return values of another function. It checks the return values for an +-- exception, which is signalled when the first return value is false. If there +-- is an exception, the script will stop immediately and produce no output. An +-- optional handler function can be called before the script is stopped. In the +-- error handler function you can perform any clean-up operations, such as +-- closing a socket. -- @param handler Exception handler function (optional). -- @usage -- local result, socket, try, catch\n ---\n +-- \n -- result = ""\n -- socket = nmap.new_socket()\n --- catch = function() \n --- socket:close() \n +-- catch = function()\n +-- socket:close()\n -- end\n -- try = nmap.new_try(catch)\n ---\n -- try(socket:connect(host.ip, port.number))\n -- result = try(socket:receive_lines(1))\n -- try(socket:send(result))