Move lua_State creation to digwatch main

This commit is contained in:
Henri DF
2016-02-23 18:18:43 -08:00
parent 3e73f01472
commit 636429c674
3 changed files with 10 additions and 6 deletions

View File

@@ -150,6 +150,7 @@ int digwatch_init(int argc, char **argv)
int long_index = 0; int long_index = 0;
string lua_main_filename; string lua_main_filename;
string lua_dir = DIGWATCH_INSTALLATION_DIR; string lua_dir = DIGWATCH_INSTALLATION_DIR;
lua_State* ls;
static struct option long_options[] = static struct option long_options[] =
{ {
@@ -259,7 +260,11 @@ int digwatch_init(int argc, char **argv)
lua_main_filename = lua_dir + DIGWATCH_LUA_MAIN; lua_main_filename = lua_dir + DIGWATCH_LUA_MAIN;
} }
rules = new digwatch_rules(inspector, lua_main_filename, lua_dir); // Initialize Lua interpreter
ls = lua_open();
luaL_openlibs(ls);
rules = new digwatch_rules(inspector, ls, lua_main_filename, lua_dir);
rules->load_rules(rules_file); rules->load_rules(rules_file);
inspector->set_filter(rules->get_filter()); inspector->set_filter(rules->get_filter());
@@ -290,6 +295,7 @@ exit:
delete inspector; delete inspector;
} }
lua_close(ls);
return result; return result;
} }

View File

@@ -15,13 +15,11 @@ const static struct luaL_reg ll_digwatch [] =
{NULL,NULL} {NULL,NULL}
}; };
digwatch_rules::digwatch_rules(sinsp* inspector, string lua_main_filename, string lua_dir) digwatch_rules::digwatch_rules(sinsp* inspector, lua_State *ls, string lua_main_filename, string lua_dir)
{ {
g_inspector = inspector; g_inspector = inspector;
// Initialize Lua interpreter m_ls = ls;
m_ls = lua_open();
luaL_openlibs(m_ls);
m_lua_parser = new lua_parser(inspector, m_ls); m_lua_parser = new lua_parser(inspector, m_ls);

View File

@@ -8,7 +8,7 @@ class sinsp_evt_formatter;
class digwatch_rules class digwatch_rules
{ {
public: public:
digwatch_rules(sinsp* inspector, string lua_main_filename, string lua_dir); digwatch_rules(sinsp* inspector, lua_State *ls, string lua_main_filename, string lua_dir);
~digwatch_rules(); ~digwatch_rules();
void load_rules(string rules_filename); void load_rules(string rules_filename);
sinsp_filter* get_filter(); sinsp_filter* get_filter();