mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-28 05:48:01 +00:00
MINOR: lua-thread: Split hlua_init() function in two parts
The goal is to allow execution of one main lua state per thread. This is a preparative work in order to init more than one stack in the lua-thread objective.
This commit is contained in:
parent
ad5345fed7
commit
1eac28f5fc
398
src/hlua.c
398
src/hlua.c
@ -8380,7 +8380,7 @@ static void *hlua_alloc(void *ud, void *ptr, size_t osize, size_t nsize)
|
||||
* We are in the initialisation process of HAProxy, this abort() is
|
||||
* tolerated.
|
||||
*/
|
||||
void hlua_init(void)
|
||||
lua_State *hlua_init_state(void)
|
||||
{
|
||||
int i;
|
||||
int idx;
|
||||
@ -8389,6 +8389,7 @@ void hlua_init(void)
|
||||
char *p;
|
||||
const char *error_msg;
|
||||
void **context;
|
||||
lua_State *L;
|
||||
#ifdef USE_OPENSSL
|
||||
struct srv_kw *kw;
|
||||
int tmp_error;
|
||||
@ -8402,10 +8403,10 @@ void hlua_init(void)
|
||||
#endif
|
||||
|
||||
/* Init main lua stack. */
|
||||
gL.T = lua_newstate(hlua_alloc, &hlua_global_allocator);
|
||||
L = lua_newstate(hlua_alloc, &hlua_global_allocator);
|
||||
|
||||
/* Initialise Lua context to NULL */
|
||||
context = lua_getextraspace(gL.T);
|
||||
context = lua_getextraspace(L);
|
||||
*context = NULL;
|
||||
|
||||
/* From this point, until the end of the initialisation function,
|
||||
@ -8414,24 +8415,25 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* Set safe environment for the initialisation. */
|
||||
if (!SET_SAFE_LJMP(gL.T)) {
|
||||
if (lua_type(gL.T, -1) == LUA_TSTRING)
|
||||
error_msg = lua_tostring(gL.T, -1);
|
||||
if (!SET_SAFE_LJMP(L)) {
|
||||
if (lua_type(L, -1) == LUA_TSTRING)
|
||||
error_msg = lua_tostring(L, -1);
|
||||
else
|
||||
error_msg = "critical error";
|
||||
fprintf(stderr, "Lua init: %s.\n", error_msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
/* Initialise lua. */
|
||||
luaL_openlibs(gL.T);
|
||||
luaL_openlibs(L);
|
||||
#define HLUA_PREPEND_PATH_TOSTRING1(x) #x
|
||||
#define HLUA_PREPEND_PATH_TOSTRING(x) HLUA_PREPEND_PATH_TOSTRING1(x)
|
||||
#ifdef HLUA_PREPEND_PATH
|
||||
hlua_prepend_path(gL.T, "path", HLUA_PREPEND_PATH_TOSTRING(HLUA_PREPEND_PATH));
|
||||
hlua_prepend_path(L, "path", HLUA_PREPEND_PATH_TOSTRING(HLUA_PREPEND_PATH));
|
||||
#endif
|
||||
#ifdef HLUA_PREPEND_CPATH
|
||||
hlua_prepend_path(gL.T, "cpath", HLUA_PREPEND_PATH_TOSTRING(HLUA_PREPEND_CPATH));
|
||||
hlua_prepend_path(L, "cpath", HLUA_PREPEND_PATH_TOSTRING(HLUA_PREPEND_CPATH));
|
||||
#endif
|
||||
#undef HLUA_PREPEND_PATH_TOSTRING
|
||||
#undef HLUA_PREPEND_PATH_TOSTRING1
|
||||
@ -8443,38 +8445,38 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* This table entry is the object "core" base. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Push the loglevel constants. */
|
||||
for (i = 0; i < NB_LOG_LEVELS; i++)
|
||||
hlua_class_const_int(gL.T, log_levels[i], i);
|
||||
hlua_class_const_int(L, log_levels[i], i);
|
||||
|
||||
/* Register special functions. */
|
||||
hlua_class_function(gL.T, "register_init", hlua_register_init);
|
||||
hlua_class_function(gL.T, "register_task", hlua_register_task);
|
||||
hlua_class_function(gL.T, "register_fetches", hlua_register_fetches);
|
||||
hlua_class_function(gL.T, "register_converters", hlua_register_converters);
|
||||
hlua_class_function(gL.T, "register_action", hlua_register_action);
|
||||
hlua_class_function(gL.T, "register_service", hlua_register_service);
|
||||
hlua_class_function(gL.T, "register_cli", hlua_register_cli);
|
||||
hlua_class_function(gL.T, "yield", hlua_yield);
|
||||
hlua_class_function(gL.T, "set_nice", hlua_set_nice);
|
||||
hlua_class_function(gL.T, "sleep", hlua_sleep);
|
||||
hlua_class_function(gL.T, "msleep", hlua_msleep);
|
||||
hlua_class_function(gL.T, "add_acl", hlua_add_acl);
|
||||
hlua_class_function(gL.T, "del_acl", hlua_del_acl);
|
||||
hlua_class_function(gL.T, "set_map", hlua_set_map);
|
||||
hlua_class_function(gL.T, "del_map", hlua_del_map);
|
||||
hlua_class_function(gL.T, "tcp", hlua_socket_new);
|
||||
hlua_class_function(gL.T, "log", hlua_log);
|
||||
hlua_class_function(gL.T, "Debug", hlua_log_debug);
|
||||
hlua_class_function(gL.T, "Info", hlua_log_info);
|
||||
hlua_class_function(gL.T, "Warning", hlua_log_warning);
|
||||
hlua_class_function(gL.T, "Alert", hlua_log_alert);
|
||||
hlua_class_function(gL.T, "done", hlua_done);
|
||||
hlua_fcn_reg_core_fcn(gL.T);
|
||||
hlua_class_function(L, "register_init", hlua_register_init);
|
||||
hlua_class_function(L, "register_task", hlua_register_task);
|
||||
hlua_class_function(L, "register_fetches", hlua_register_fetches);
|
||||
hlua_class_function(L, "register_converters", hlua_register_converters);
|
||||
hlua_class_function(L, "register_action", hlua_register_action);
|
||||
hlua_class_function(L, "register_service", hlua_register_service);
|
||||
hlua_class_function(L, "register_cli", hlua_register_cli);
|
||||
hlua_class_function(L, "yield", hlua_yield);
|
||||
hlua_class_function(L, "set_nice", hlua_set_nice);
|
||||
hlua_class_function(L, "sleep", hlua_sleep);
|
||||
hlua_class_function(L, "msleep", hlua_msleep);
|
||||
hlua_class_function(L, "add_acl", hlua_add_acl);
|
||||
hlua_class_function(L, "del_acl", hlua_del_acl);
|
||||
hlua_class_function(L, "set_map", hlua_set_map);
|
||||
hlua_class_function(L, "del_map", hlua_del_map);
|
||||
hlua_class_function(L, "tcp", hlua_socket_new);
|
||||
hlua_class_function(L, "log", hlua_log);
|
||||
hlua_class_function(L, "Debug", hlua_log_debug);
|
||||
hlua_class_function(L, "Info", hlua_log_info);
|
||||
hlua_class_function(L, "Warning", hlua_log_warning);
|
||||
hlua_class_function(L, "Alert", hlua_log_alert);
|
||||
hlua_class_function(L, "done", hlua_done);
|
||||
hlua_fcn_reg_core_fcn(L);
|
||||
|
||||
lua_setglobal(gL.T, "core");
|
||||
lua_setglobal(L, "core");
|
||||
|
||||
/*
|
||||
*
|
||||
@ -8483,21 +8485,21 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* This table entry is the object "act" base. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* push action return constants */
|
||||
hlua_class_const_int(gL.T, "CONTINUE", ACT_RET_CONT);
|
||||
hlua_class_const_int(gL.T, "STOP", ACT_RET_STOP);
|
||||
hlua_class_const_int(gL.T, "YIELD", ACT_RET_YIELD);
|
||||
hlua_class_const_int(gL.T, "ERROR", ACT_RET_ERR);
|
||||
hlua_class_const_int(gL.T, "DONE", ACT_RET_DONE);
|
||||
hlua_class_const_int(gL.T, "DENY", ACT_RET_DENY);
|
||||
hlua_class_const_int(gL.T, "ABORT", ACT_RET_ABRT);
|
||||
hlua_class_const_int(gL.T, "INVALID", ACT_RET_INV);
|
||||
hlua_class_const_int(L, "CONTINUE", ACT_RET_CONT);
|
||||
hlua_class_const_int(L, "STOP", ACT_RET_STOP);
|
||||
hlua_class_const_int(L, "YIELD", ACT_RET_YIELD);
|
||||
hlua_class_const_int(L, "ERROR", ACT_RET_ERR);
|
||||
hlua_class_const_int(L, "DONE", ACT_RET_DONE);
|
||||
hlua_class_const_int(L, "DENY", ACT_RET_DENY);
|
||||
hlua_class_const_int(L, "ABORT", ACT_RET_ABRT);
|
||||
hlua_class_const_int(L, "INVALID", ACT_RET_INV);
|
||||
|
||||
hlua_class_function(gL.T, "wake_time", hlua_set_wake_time);
|
||||
hlua_class_function(L, "wake_time", hlua_set_wake_time);
|
||||
|
||||
lua_setglobal(gL.T, "act");
|
||||
lua_setglobal(L, "act");
|
||||
|
||||
/*
|
||||
*
|
||||
@ -8506,44 +8508,44 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* This table entry is the object "Map" base. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* register pattern types. */
|
||||
for (i=0; i<PAT_MATCH_NUM; i++)
|
||||
hlua_class_const_int(gL.T, pat_match_names[i], i);
|
||||
hlua_class_const_int(L, pat_match_names[i], i);
|
||||
for (i=0; i<PAT_MATCH_NUM; i++) {
|
||||
snprintf(trash.area, trash.size, "_%s", pat_match_names[i]);
|
||||
hlua_class_const_int(gL.T, trash.area, i);
|
||||
hlua_class_const_int(L, trash.area, i);
|
||||
}
|
||||
|
||||
/* register constructor. */
|
||||
hlua_class_function(gL.T, "new", hlua_map_new);
|
||||
hlua_class_function(L, "new", hlua_map_new);
|
||||
|
||||
/* Create and fill the metatable. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Create and fill the __index entry. */
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
|
||||
/* Register . */
|
||||
hlua_class_function(gL.T, "lookup", hlua_map_lookup);
|
||||
hlua_class_function(gL.T, "slookup", hlua_map_slookup);
|
||||
hlua_class_function(L, "lookup", hlua_map_lookup);
|
||||
hlua_class_function(L, "slookup", hlua_map_slookup);
|
||||
|
||||
lua_rawset(gL.T, -3);
|
||||
lua_rawset(L, -3);
|
||||
|
||||
/* Register previous table in the registry with reference and named entry.
|
||||
* The function hlua_register_metatable() pops the stack, so we
|
||||
* previously create a copy of the table.
|
||||
*/
|
||||
lua_pushvalue(gL.T, -1); /* Copy the -1 entry and push it on the stack. */
|
||||
class_map_ref = hlua_register_metatable(gL.T, CLASS_MAP);
|
||||
lua_pushvalue(L, -1); /* Copy the -1 entry and push it on the stack. */
|
||||
class_map_ref = hlua_register_metatable(L, CLASS_MAP);
|
||||
|
||||
/* Assign the metatable to the mai Map object. */
|
||||
lua_setmetatable(gL.T, -2);
|
||||
lua_setmetatable(L, -2);
|
||||
|
||||
/* Set a name to the table. */
|
||||
lua_setglobal(gL.T, "Map");
|
||||
lua_setglobal(L, "Map");
|
||||
|
||||
/*
|
||||
*
|
||||
@ -8552,29 +8554,29 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* Create and fill the metatable. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Create and fill the __index entry. */
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
|
||||
/* Register . */
|
||||
hlua_class_function(gL.T, "get", hlua_channel_get);
|
||||
hlua_class_function(gL.T, "dup", hlua_channel_dup);
|
||||
hlua_class_function(gL.T, "getline", hlua_channel_getline);
|
||||
hlua_class_function(gL.T, "set", hlua_channel_set);
|
||||
hlua_class_function(gL.T, "append", hlua_channel_append);
|
||||
hlua_class_function(gL.T, "send", hlua_channel_send);
|
||||
hlua_class_function(gL.T, "forward", hlua_channel_forward);
|
||||
hlua_class_function(gL.T, "get_in_len", hlua_channel_get_in_len);
|
||||
hlua_class_function(gL.T, "get_out_len", hlua_channel_get_out_len);
|
||||
hlua_class_function(gL.T, "is_full", hlua_channel_is_full);
|
||||
hlua_class_function(gL.T, "is_resp", hlua_channel_is_resp);
|
||||
hlua_class_function(L, "get", hlua_channel_get);
|
||||
hlua_class_function(L, "dup", hlua_channel_dup);
|
||||
hlua_class_function(L, "getline", hlua_channel_getline);
|
||||
hlua_class_function(L, "set", hlua_channel_set);
|
||||
hlua_class_function(L, "append", hlua_channel_append);
|
||||
hlua_class_function(L, "send", hlua_channel_send);
|
||||
hlua_class_function(L, "forward", hlua_channel_forward);
|
||||
hlua_class_function(L, "get_in_len", hlua_channel_get_in_len);
|
||||
hlua_class_function(L, "get_out_len", hlua_channel_get_out_len);
|
||||
hlua_class_function(L, "is_full", hlua_channel_is_full);
|
||||
hlua_class_function(L, "is_resp", hlua_channel_is_resp);
|
||||
|
||||
lua_rawset(gL.T, -3);
|
||||
lua_rawset(L, -3);
|
||||
|
||||
/* Register previous table in the registry with reference and named entry. */
|
||||
class_channel_ref = hlua_register_metatable(gL.T, CLASS_CHANNEL);
|
||||
class_channel_ref = hlua_register_metatable(L, CLASS_CHANNEL);
|
||||
|
||||
/*
|
||||
*
|
||||
@ -8583,11 +8585,11 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* Create and fill the metatable. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Create and fill the __index entry. */
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
|
||||
/* Browse existing fetches and create the associated
|
||||
* object method.
|
||||
@ -8604,16 +8606,16 @@ void hlua_init(void)
|
||||
*p = '_';
|
||||
|
||||
/* Register the function. */
|
||||
lua_pushstring(gL.T, trash.area);
|
||||
lua_pushlightuserdata(gL.T, sf);
|
||||
lua_pushcclosure(gL.T, hlua_run_sample_fetch, 1);
|
||||
lua_rawset(gL.T, -3);
|
||||
lua_pushstring(L, trash.area);
|
||||
lua_pushlightuserdata(L, sf);
|
||||
lua_pushcclosure(L, hlua_run_sample_fetch, 1);
|
||||
lua_rawset(L, -3);
|
||||
}
|
||||
|
||||
lua_rawset(gL.T, -3);
|
||||
lua_rawset(L, -3);
|
||||
|
||||
/* Register previous table in the registry with reference and named entry. */
|
||||
class_fetches_ref = hlua_register_metatable(gL.T, CLASS_FETCHES);
|
||||
class_fetches_ref = hlua_register_metatable(L, CLASS_FETCHES);
|
||||
|
||||
/*
|
||||
*
|
||||
@ -8622,11 +8624,11 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* Create and fill the metatable. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Create and fill the __index entry. */
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
|
||||
/* Browse existing converters and create the associated
|
||||
* object method.
|
||||
@ -8643,16 +8645,16 @@ void hlua_init(void)
|
||||
*p = '_';
|
||||
|
||||
/* Register the function. */
|
||||
lua_pushstring(gL.T, trash.area);
|
||||
lua_pushlightuserdata(gL.T, sc);
|
||||
lua_pushcclosure(gL.T, hlua_run_sample_conv, 1);
|
||||
lua_rawset(gL.T, -3);
|
||||
lua_pushstring(L, trash.area);
|
||||
lua_pushlightuserdata(L, sc);
|
||||
lua_pushcclosure(L, hlua_run_sample_conv, 1);
|
||||
lua_rawset(L, -3);
|
||||
}
|
||||
|
||||
lua_rawset(gL.T, -3);
|
||||
lua_rawset(L, -3);
|
||||
|
||||
/* Register previous table in the registry with reference and named entry. */
|
||||
class_converters_ref = hlua_register_metatable(gL.T, CLASS_CONVERTERS);
|
||||
class_converters_ref = hlua_register_metatable(L, CLASS_CONVERTERS);
|
||||
|
||||
/*
|
||||
*
|
||||
@ -8661,36 +8663,36 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* Create and fill the metatable. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Create and fill the __index entry. */
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
|
||||
/* Register Lua functions. */
|
||||
hlua_class_function(gL.T, "req_get_headers",hlua_http_req_get_headers);
|
||||
hlua_class_function(gL.T, "req_del_header", hlua_http_req_del_hdr);
|
||||
hlua_class_function(gL.T, "req_rep_header", hlua_http_req_rep_hdr);
|
||||
hlua_class_function(gL.T, "req_rep_value", hlua_http_req_rep_val);
|
||||
hlua_class_function(gL.T, "req_add_header", hlua_http_req_add_hdr);
|
||||
hlua_class_function(gL.T, "req_set_header", hlua_http_req_set_hdr);
|
||||
hlua_class_function(gL.T, "req_set_method", hlua_http_req_set_meth);
|
||||
hlua_class_function(gL.T, "req_set_path", hlua_http_req_set_path);
|
||||
hlua_class_function(gL.T, "req_set_query", hlua_http_req_set_query);
|
||||
hlua_class_function(gL.T, "req_set_uri", hlua_http_req_set_uri);
|
||||
hlua_class_function(L, "req_get_headers",hlua_http_req_get_headers);
|
||||
hlua_class_function(L, "req_del_header", hlua_http_req_del_hdr);
|
||||
hlua_class_function(L, "req_rep_header", hlua_http_req_rep_hdr);
|
||||
hlua_class_function(L, "req_rep_value", hlua_http_req_rep_val);
|
||||
hlua_class_function(L, "req_add_header", hlua_http_req_add_hdr);
|
||||
hlua_class_function(L, "req_set_header", hlua_http_req_set_hdr);
|
||||
hlua_class_function(L, "req_set_method", hlua_http_req_set_meth);
|
||||
hlua_class_function(L, "req_set_path", hlua_http_req_set_path);
|
||||
hlua_class_function(L, "req_set_query", hlua_http_req_set_query);
|
||||
hlua_class_function(L, "req_set_uri", hlua_http_req_set_uri);
|
||||
|
||||
hlua_class_function(gL.T, "res_get_headers",hlua_http_res_get_headers);
|
||||
hlua_class_function(gL.T, "res_del_header", hlua_http_res_del_hdr);
|
||||
hlua_class_function(gL.T, "res_rep_header", hlua_http_res_rep_hdr);
|
||||
hlua_class_function(gL.T, "res_rep_value", hlua_http_res_rep_val);
|
||||
hlua_class_function(gL.T, "res_add_header", hlua_http_res_add_hdr);
|
||||
hlua_class_function(gL.T, "res_set_header", hlua_http_res_set_hdr);
|
||||
hlua_class_function(gL.T, "res_set_status", hlua_http_res_set_status);
|
||||
hlua_class_function(L, "res_get_headers",hlua_http_res_get_headers);
|
||||
hlua_class_function(L, "res_del_header", hlua_http_res_del_hdr);
|
||||
hlua_class_function(L, "res_rep_header", hlua_http_res_rep_hdr);
|
||||
hlua_class_function(L, "res_rep_value", hlua_http_res_rep_val);
|
||||
hlua_class_function(L, "res_add_header", hlua_http_res_add_hdr);
|
||||
hlua_class_function(L, "res_set_header", hlua_http_res_set_hdr);
|
||||
hlua_class_function(L, "res_set_status", hlua_http_res_set_status);
|
||||
|
||||
lua_rawset(gL.T, -3);
|
||||
lua_rawset(L, -3);
|
||||
|
||||
/* Register previous table in the registry with reference and named entry. */
|
||||
class_http_ref = hlua_register_metatable(gL.T, CLASS_HTTP);
|
||||
class_http_ref = hlua_register_metatable(L, CLASS_HTTP);
|
||||
|
||||
/*
|
||||
*
|
||||
@ -8699,26 +8701,26 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* Create and fill the metatable. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Create and fill the __index entry. */
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
|
||||
/* Register Lua functions. */
|
||||
hlua_class_function(gL.T, "getline", hlua_applet_tcp_getline);
|
||||
hlua_class_function(gL.T, "receive", hlua_applet_tcp_recv);
|
||||
hlua_class_function(gL.T, "send", hlua_applet_tcp_send);
|
||||
hlua_class_function(gL.T, "set_priv", hlua_applet_tcp_set_priv);
|
||||
hlua_class_function(gL.T, "get_priv", hlua_applet_tcp_get_priv);
|
||||
hlua_class_function(gL.T, "set_var", hlua_applet_tcp_set_var);
|
||||
hlua_class_function(gL.T, "unset_var", hlua_applet_tcp_unset_var);
|
||||
hlua_class_function(gL.T, "get_var", hlua_applet_tcp_get_var);
|
||||
hlua_class_function(L, "getline", hlua_applet_tcp_getline);
|
||||
hlua_class_function(L, "receive", hlua_applet_tcp_recv);
|
||||
hlua_class_function(L, "send", hlua_applet_tcp_send);
|
||||
hlua_class_function(L, "set_priv", hlua_applet_tcp_set_priv);
|
||||
hlua_class_function(L, "get_priv", hlua_applet_tcp_get_priv);
|
||||
hlua_class_function(L, "set_var", hlua_applet_tcp_set_var);
|
||||
hlua_class_function(L, "unset_var", hlua_applet_tcp_unset_var);
|
||||
hlua_class_function(L, "get_var", hlua_applet_tcp_get_var);
|
||||
|
||||
lua_settable(gL.T, -3);
|
||||
lua_settable(L, -3);
|
||||
|
||||
/* Register previous table in the registry with reference and named entry. */
|
||||
class_applet_tcp_ref = hlua_register_metatable(gL.T, CLASS_APPLET_TCP);
|
||||
class_applet_tcp_ref = hlua_register_metatable(L, CLASS_APPLET_TCP);
|
||||
|
||||
/*
|
||||
*
|
||||
@ -8727,29 +8729,29 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* Create and fill the metatable. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Create and fill the __index entry. */
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
|
||||
/* Register Lua functions. */
|
||||
hlua_class_function(gL.T, "set_priv", hlua_applet_http_set_priv);
|
||||
hlua_class_function(gL.T, "get_priv", hlua_applet_http_get_priv);
|
||||
hlua_class_function(gL.T, "set_var", hlua_applet_http_set_var);
|
||||
hlua_class_function(gL.T, "unset_var", hlua_applet_http_unset_var);
|
||||
hlua_class_function(gL.T, "get_var", hlua_applet_http_get_var);
|
||||
hlua_class_function(gL.T, "getline", hlua_applet_http_getline);
|
||||
hlua_class_function(gL.T, "receive", hlua_applet_http_recv);
|
||||
hlua_class_function(gL.T, "send", hlua_applet_http_send);
|
||||
hlua_class_function(gL.T, "add_header", hlua_applet_http_addheader);
|
||||
hlua_class_function(gL.T, "set_status", hlua_applet_http_status);
|
||||
hlua_class_function(gL.T, "start_response", hlua_applet_http_start_response);
|
||||
hlua_class_function(L, "set_priv", hlua_applet_http_set_priv);
|
||||
hlua_class_function(L, "get_priv", hlua_applet_http_get_priv);
|
||||
hlua_class_function(L, "set_var", hlua_applet_http_set_var);
|
||||
hlua_class_function(L, "unset_var", hlua_applet_http_unset_var);
|
||||
hlua_class_function(L, "get_var", hlua_applet_http_get_var);
|
||||
hlua_class_function(L, "getline", hlua_applet_http_getline);
|
||||
hlua_class_function(L, "receive", hlua_applet_http_recv);
|
||||
hlua_class_function(L, "send", hlua_applet_http_send);
|
||||
hlua_class_function(L, "add_header", hlua_applet_http_addheader);
|
||||
hlua_class_function(L, "set_status", hlua_applet_http_status);
|
||||
hlua_class_function(L, "start_response", hlua_applet_http_start_response);
|
||||
|
||||
lua_settable(gL.T, -3);
|
||||
lua_settable(L, -3);
|
||||
|
||||
/* Register previous table in the registry with reference and named entry. */
|
||||
class_applet_http_ref = hlua_register_metatable(gL.T, CLASS_APPLET_HTTP);
|
||||
class_applet_http_ref = hlua_register_metatable(L, CLASS_APPLET_HTTP);
|
||||
|
||||
/*
|
||||
*
|
||||
@ -8758,51 +8760,51 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* Create and fill the metatable. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Create and fill the __index entry. */
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
|
||||
/* Register Lua functions. */
|
||||
hlua_class_function(gL.T, "set_priv", hlua_set_priv);
|
||||
hlua_class_function(gL.T, "get_priv", hlua_get_priv);
|
||||
hlua_class_function(gL.T, "set_var", hlua_set_var);
|
||||
hlua_class_function(gL.T, "unset_var", hlua_unset_var);
|
||||
hlua_class_function(gL.T, "get_var", hlua_get_var);
|
||||
hlua_class_function(gL.T, "done", hlua_txn_done);
|
||||
hlua_class_function(gL.T, "reply", hlua_txn_reply_new);
|
||||
hlua_class_function(gL.T, "set_loglevel", hlua_txn_set_loglevel);
|
||||
hlua_class_function(gL.T, "set_tos", hlua_txn_set_tos);
|
||||
hlua_class_function(gL.T, "set_mark", hlua_txn_set_mark);
|
||||
hlua_class_function(gL.T, "set_priority_class", hlua_txn_set_priority_class);
|
||||
hlua_class_function(gL.T, "set_priority_offset", hlua_txn_set_priority_offset);
|
||||
hlua_class_function(gL.T, "deflog", hlua_txn_deflog);
|
||||
hlua_class_function(gL.T, "log", hlua_txn_log);
|
||||
hlua_class_function(gL.T, "Debug", hlua_txn_log_debug);
|
||||
hlua_class_function(gL.T, "Info", hlua_txn_log_info);
|
||||
hlua_class_function(gL.T, "Warning", hlua_txn_log_warning);
|
||||
hlua_class_function(gL.T, "Alert", hlua_txn_log_alert);
|
||||
hlua_class_function(L, "set_priv", hlua_set_priv);
|
||||
hlua_class_function(L, "get_priv", hlua_get_priv);
|
||||
hlua_class_function(L, "set_var", hlua_set_var);
|
||||
hlua_class_function(L, "unset_var", hlua_unset_var);
|
||||
hlua_class_function(L, "get_var", hlua_get_var);
|
||||
hlua_class_function(L, "done", hlua_txn_done);
|
||||
hlua_class_function(L, "reply", hlua_txn_reply_new);
|
||||
hlua_class_function(L, "set_loglevel", hlua_txn_set_loglevel);
|
||||
hlua_class_function(L, "set_tos", hlua_txn_set_tos);
|
||||
hlua_class_function(L, "set_mark", hlua_txn_set_mark);
|
||||
hlua_class_function(L, "set_priority_class", hlua_txn_set_priority_class);
|
||||
hlua_class_function(L, "set_priority_offset", hlua_txn_set_priority_offset);
|
||||
hlua_class_function(L, "deflog", hlua_txn_deflog);
|
||||
hlua_class_function(L, "log", hlua_txn_log);
|
||||
hlua_class_function(L, "Debug", hlua_txn_log_debug);
|
||||
hlua_class_function(L, "Info", hlua_txn_log_info);
|
||||
hlua_class_function(L, "Warning", hlua_txn_log_warning);
|
||||
hlua_class_function(L, "Alert", hlua_txn_log_alert);
|
||||
|
||||
lua_rawset(gL.T, -3);
|
||||
lua_rawset(L, -3);
|
||||
|
||||
/* Register previous table in the registry with reference and named entry. */
|
||||
class_txn_ref = hlua_register_metatable(gL.T, CLASS_TXN);
|
||||
class_txn_ref = hlua_register_metatable(L, CLASS_TXN);
|
||||
|
||||
/*
|
||||
*
|
||||
* Register class reply
|
||||
*
|
||||
*/
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
hlua_class_function(gL.T, "set_status", hlua_txn_reply_set_status);
|
||||
hlua_class_function(gL.T, "add_header", hlua_txn_reply_add_header);
|
||||
hlua_class_function(gL.T, "del_header", hlua_txn_reply_del_header);
|
||||
hlua_class_function(gL.T, "set_body", hlua_txn_reply_set_body);
|
||||
lua_settable(gL.T, -3); /* Sets the __index entry. */
|
||||
class_txn_reply_ref = luaL_ref(gL.T, LUA_REGISTRYINDEX);
|
||||
lua_newtable(L);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
hlua_class_function(L, "set_status", hlua_txn_reply_set_status);
|
||||
hlua_class_function(L, "add_header", hlua_txn_reply_add_header);
|
||||
hlua_class_function(L, "del_header", hlua_txn_reply_del_header);
|
||||
hlua_class_function(L, "set_body", hlua_txn_reply_set_body);
|
||||
lua_settable(L, -3); /* Sets the __index entry. */
|
||||
class_txn_reply_ref = luaL_ref(L, LUA_REGISTRYINDEX);
|
||||
|
||||
|
||||
/*
|
||||
@ -8812,33 +8814,33 @@ void hlua_init(void)
|
||||
*/
|
||||
|
||||
/* Create and fill the metatable. */
|
||||
lua_newtable(gL.T);
|
||||
lua_newtable(L);
|
||||
|
||||
/* Create and fill the __index entry. */
|
||||
lua_pushstring(gL.T, "__index");
|
||||
lua_newtable(gL.T);
|
||||
lua_pushstring(L, "__index");
|
||||
lua_newtable(L);
|
||||
|
||||
#ifdef USE_OPENSSL
|
||||
hlua_class_function(gL.T, "connect_ssl", hlua_socket_connect_ssl);
|
||||
hlua_class_function(L, "connect_ssl", hlua_socket_connect_ssl);
|
||||
#endif
|
||||
hlua_class_function(gL.T, "connect", hlua_socket_connect);
|
||||
hlua_class_function(gL.T, "send", hlua_socket_send);
|
||||
hlua_class_function(gL.T, "receive", hlua_socket_receive);
|
||||
hlua_class_function(gL.T, "close", hlua_socket_close);
|
||||
hlua_class_function(gL.T, "getpeername", hlua_socket_getpeername);
|
||||
hlua_class_function(gL.T, "getsockname", hlua_socket_getsockname);
|
||||
hlua_class_function(gL.T, "setoption", hlua_socket_setoption);
|
||||
hlua_class_function(gL.T, "settimeout", hlua_socket_settimeout);
|
||||
hlua_class_function(L, "connect", hlua_socket_connect);
|
||||
hlua_class_function(L, "send", hlua_socket_send);
|
||||
hlua_class_function(L, "receive", hlua_socket_receive);
|
||||
hlua_class_function(L, "close", hlua_socket_close);
|
||||
hlua_class_function(L, "getpeername", hlua_socket_getpeername);
|
||||
hlua_class_function(L, "getsockname", hlua_socket_getsockname);
|
||||
hlua_class_function(L, "setoption", hlua_socket_setoption);
|
||||
hlua_class_function(L, "settimeout", hlua_socket_settimeout);
|
||||
|
||||
lua_rawset(gL.T, -3); /* Push the last 2 entries in the table at index -3 */
|
||||
lua_rawset(L, -3); /* Push the last 2 entries in the table at index -3 */
|
||||
|
||||
/* Register the garbage collector entry. */
|
||||
lua_pushstring(gL.T, "__gc");
|
||||
lua_pushcclosure(gL.T, hlua_socket_gc, 0);
|
||||
lua_rawset(gL.T, -3); /* Push the last 2 entries in the table at index -3 */
|
||||
lua_pushstring(L, "__gc");
|
||||
lua_pushcclosure(L, hlua_socket_gc, 0);
|
||||
lua_rawset(L, -3); /* Push the last 2 entries in the table at index -3 */
|
||||
|
||||
/* Register previous table in the registry with reference and named entry. */
|
||||
class_socket_ref = hlua_register_metatable(gL.T, CLASS_SOCKET);
|
||||
class_socket_ref = hlua_register_metatable(L, CLASS_SOCKET);
|
||||
|
||||
/* Proxy and server configuration initialisation. */
|
||||
memset(&socket_proxy, 0, sizeof(socket_proxy));
|
||||
@ -8964,7 +8966,13 @@ void hlua_init(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
RESET_SAFE_LJMP(gL.T);
|
||||
RESET_SAFE_LJMP(L);
|
||||
|
||||
return L;
|
||||
}
|
||||
|
||||
void hlua_init(void) {
|
||||
gL.T = hlua_init_state();
|
||||
}
|
||||
|
||||
static void hlua_deinit()
|
||||
|
Loading…
Reference in New Issue
Block a user