1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-06 04:31:29 +00:00
Files
nmap/nse_main.h
d33tah e3d1c178e3 Add newlines at the EOF in conformance to Daniel's coding standards
proposal. This only affects Nmap's root directory. We might also need to
modify the code which autogenerates Nmap's source code files such as IPv6
fingerprinting code.
2014-06-18 10:18:58 +00:00

78 lines
1.8 KiB
C++

#ifndef NMAP_LUA_H
#define NMAP_LUA_H
#include <vector>
#include <list>
#include <string>
#include <string.h>
#include <iostream>
extern "C" {
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
#include "nmap.h"
#include "global_structures.h"
class ScriptResult
{
private:
std::string id;
/* Structured output table, an integer ref in L_NSE[LUA_REGISTRYINDEX]. */
int output_ref;
/* Unstructured output string, for scripts that do not return a structured
table, or return a string in addition to a table. */
std::string output_str;
public:
ScriptResult() {
output_ref = LUA_NOREF;
}
void clear (void);
void set_output_tab (lua_State *, int);
void set_output_str (const char *);
void set_output_str (const char *, size_t);
std::string get_output_str (void) const;
void set_id (const char *);
const char *get_id (void) const;
void write_xml() const;
};
typedef std::list<ScriptResult> ScriptResults;
/* Call this to get a ScriptResults object which can be
* used to store Pre-Scan and Post-Scan script Results */
ScriptResults *get_script_scan_results_obj (void);
class Target;
/* API */
int nse_yield (lua_State *, int, lua_CFunction);
void nse_restore (lua_State *, int);
void nse_destructor (lua_State *, char);
void nse_base (lua_State *);
void nse_selectedbyname (lua_State *);
void nse_gettarget (lua_State *, int);
void open_nse (void);
void script_scan (std::vector<Target *> &targets, stype scantype);
void close_nse (void);
#define SCRIPT_ENGINE "NSE"
#ifdef WIN32
# define SCRIPT_ENGINE_LUA_DIR "scripts\\"
# define SCRIPT_ENGINE_LIB_DIR "nselib\\"
#else
# define SCRIPT_ENGINE_LUA_DIR "scripts/"
# define SCRIPT_ENGINE_LIB_DIR "nselib/"
#endif
#define SCRIPT_ENGINE_DATABASE SCRIPT_ENGINE_LUA_DIR "script.db"
#define SCRIPT_ENGINE_EXTENSION ".nse"
#endif