summaryrefslogtreecommitdiffstats
path: root/nse_utility.h
diff options
context:
space:
mode:
Diffstat (limited to 'nse_utility.h')
-rw-r--r--nse_utility.h180
1 files changed, 180 insertions, 0 deletions
diff --git a/nse_utility.h b/nse_utility.h
new file mode 100644
index 0000000..59e93e5
--- /dev/null
+++ b/nse_utility.h
@@ -0,0 +1,180 @@
+#ifndef NMAP_NSE_UTILITY_H
+#define NMAP_NSE_UTILITY_H
+
+class Port;
+class Target;
+
+#ifdef HAVE_CONFIG_H
+#include "nmap_config.h"
+#else
+#ifdef WIN32
+#include "nmap_winconfig.h"
+#endif /* WIN32 */
+#endif /* HAVE_CONFIG_H */
+
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
+/* int nseU_checkinteger (lua_State *L, int arg)
+ *
+ * Replacement for luaL_checkinteger that does a floor operation first
+ */
+int nseU_checkinteger (lua_State *L, int arg);
+
+/* int nseU_traceback (lua_State *L)
+ *
+ * Traceback C Lua function.
+ */
+int nseU_traceback (lua_State *L);
+
+/* int nseU_placeholder (lua_State *L)
+ *
+ * Placeholder C Lua function that simply throws a nil error.
+ */
+int nseU_placeholder (lua_State *L);
+
+/* void nseU_tablen (lua_State *L, int idx) [-0, +0, -]
+ *
+ * Calculates the number of entries in the table by iterating over
+ * each key/value pair.
+ */
+size_t nseU_tablen (lua_State *L, int idx);
+
+/* void nseU_setsfield (lua_State *L, int idx, [-0, +0, e]
+ * const char *field, const char *value)
+ *
+ * Sets the field for table at index idx to string value.
+ * (t[field] = value).
+ */
+void nseU_setsfield (lua_State *L, int idx, const char *field, const char *value);
+
+/* void nseU_setnfield (lua_State *L, int idx, [-0, +0, e]
+ * const char *field, lua_Number value)
+ *
+ * Sets the field for table at index idx to numerical value.
+ * (t[field] = value).
+ */
+void nseU_setnfield (lua_State *L, int idx, const char *field, lua_Number value);
+
+/* void nseU_setifield (lua_State *L, int idx, [-0, +0, e]
+ * const char *field, lua_Integer value)
+ *
+ * Sets the field for table at index idx to numerical value.
+ * (t[field] = value).
+ */
+void nseU_setifield (lua_State *L, int idx, const char *field, lua_Integer value);
+
+/* void nseU_setbfield (lua_State *L, int idx, [-0, +0, e]
+ * const char *field, int value)
+ *
+ * Sets the field for table at index idx to boolean value.
+ * (t[field] = value).
+ */
+void nseU_setbfield (lua_State *L, int idx, const char *field, int value);
+
+/* void nseU_setpfield (lua_State *L, int idx, [-0, +0, e]
+ * const char *field, void *p)
+ *
+ * Sets the field for table at index idx to lightuserdata p.
+ */
+void nseU_setpfield (lua_State *L, int idx, const char *field, void * p);
+
+/* void nseU_appendfstr (lua_State *L, int idx, [-0, +0, m]
+ * const char *fmt, ...)
+ *
+ * Appends the formatted string to the table at index idx.
+ */
+void nseU_appendfstr (lua_State *L, int idx, const char *fmt, ...);
+
+/* void nseU_weaktable (lua_State *L, int narr, int nrec, [-0, +1, e]
+ * const char *mode)
+ *
+ * Creates a table using lua_createtable with sizes narr and nrec. Creates
+ * a metatable with its __mode field set to mode.
+ */
+void nseU_weaktable (lua_State *L, int narr, int nrec, const char *mode);
+
+/* int nseU_success (lua_State *L) [-0, +1, -]
+ *
+ * Indicates successful return of the running function by pushing
+ * boolean true and returning 1. Use as a tail call:
+ * return nseU_success(L);
+ */
+int nseU_success (lua_State *L);
+
+/* int nseU_safeerror (lua_State *L, const char *fmt, ...) [-0, +1, -]
+ *
+ * Indicates unsuccessful return of the running function by pushing
+ * boolean false and and a formatted error message. Use as a tail call:
+ * return nseU_safeerror(L, "%s", "a generic error");
+ */
+int nseU_safeerror (lua_State *L, const char *fmt, ...);
+
+/* void nseU_typeerror (lua_State *L, int idx, [-0, +1, v]
+ * const char *err)
+ *
+ * Raises a type error. Same as Lua 5.1.
+ */
+void nseU_typeerror (lua_State *L, int idx, const char *err);
+
+/* void *nseU_checkudata (lua_State *L, int idx, [-0, +0, v]
+ * int upvalue, const char *name)
+ *
+ * Checks that value at index idx is a full userdata which a metatable
+ * equal to upvalue. name is the name of your object for error message
+ * purposes.
+ */
+void *nseU_checkudata (lua_State *L, int idx, int upvalue, const char *name);
+
+/* void nseU_checktarget (lua_State *L, int idx, [-0, +0, v]
+ * const char **address,
+ * const char **targetname)
+ *
+ * Check for a valid target specification at index idx. This function checks
+ * for a string at idx or a table containing the typical host table fields,
+ * 'ip' and 'targetname' in particular.
+ *
+ * The address and targetname string pointers are only valid if the target
+ * specification persists.
+ */
+void nseU_checktarget (lua_State *L, int idx, const char **address, const char **targetname);
+
+/* void nseU_opttarget (lua_State *L, int idx, [-0, +0, v]
+ * const char **address,
+ * const char **targetname)
+ *
+ * Like nseU_checktarget, but sets *address and *targetname to NULL and returns
+ * success if the argument at idx is none or nil.
+ */
+void nseU_opttarget (lua_State *L, int idx, const char **address, const char **targetname);
+
+/* uint16_t nseU_checkport (lua_State *L, int idx, [-0, +0, v]
+ * const char **protocol)
+ *
+ * Check for a valid port specification at index idx.
+ *
+ * The protocol string pointer is only valid if the port specification
+ * persists.
+ */
+uint16_t nseU_checkport (lua_State *L, int idx, const char **protocol);
+
+/* Target *nseU_gettarget (lua_State *L, int idx) [-0, +0, v]
+ *
+ * This function checks the value at index for a valid host table. It locates
+ * the associated Target (C++) class object associated with the host and
+ * returns it. If the Target is not being scanned then an error will be raised.
+ */
+Target *nseU_gettarget (lua_State *L, int idx);
+
+/* Port *nseU_getport (lua_State *L, Target *target, [-0, +0, v]
+ * Port *port, int idx)
+ *
+ * This function checks the value at index for a valid port table. It locates
+ * the associated Port (C++) class object associated with the host and
+ * returns it.
+ */
+Port *nseU_getport (lua_State *L, Target *target, Port *port, int idx);
+
+#endif
+