Don't set globals from C.

This commit is contained in:
Bruno Silvestre 2015-02-12 16:32:54 -02:00
parent 91d378a86e
commit 1ab6fac919
4 changed files with 8 additions and 76 deletions

View File

@ -14,7 +14,11 @@
#endif #endif
#if (LUA_VERSION_NUM == 501) #if (LUA_VERSION_NUM == 501)
#define lua_rawlen(L, i) lua_objlen(L, i) #define setfuncs(L, R) luaL_register(L, NULL, R)
#define lua_rawlen(L, i) lua_objlen(L, i)
#define luaL_newlib(L, R) do { lua_newtable(L); luaL_register(L, NULL, R); } while(0)
#else
#define setfuncs(L, R) luaL_setfuncs(L, R, 0)
#endif #endif
#endif #endif

View File

@ -723,30 +723,12 @@ int lsec_getmode(lua_State *L, int idx)
/** /**
* Registre the module. * Registre the module.
*/ */
#if (LUA_VERSION_NUM == 501)
LSEC_API int luaopen_ssl_context(lua_State *L) LSEC_API int luaopen_ssl_context(lua_State *L)
{ {
luaL_newmetatable(L, "SSL:DH:Registry"); /* Keep all DH callbacks */ luaL_newmetatable(L, "SSL:DH:Registry"); /* Keep all DH callbacks */
luaL_newmetatable(L, "SSL:Verify:Registry"); /* Keep all verify flags */ luaL_newmetatable(L, "SSL:Verify:Registry"); /* Keep all verify flags */
luaL_newmetatable(L, "SSL:Context"); luaL_newmetatable(L, "SSL:Context");
luaL_register(L, NULL, meta); setfuncs(L, meta);
/* Create __index metamethods for context */
lua_newtable(L);
luaL_register(L, NULL, meta_index);
lua_setfield(L, -2, "__index");
/* Register the module */
luaL_register(L, "ssl.context", funcs);
return 1;
}
#else
LSEC_API int luaopen_ssl_context(lua_State *L)
{
luaL_newmetatable(L, "SSL:DH:Registry"); /* Keep all DH callbacks */
luaL_newmetatable(L, "SSL:Verify:Registry"); /* Keep all verify flags */
luaL_newmetatable(L, "SSL:Context");
luaL_setfuncs(L, meta, 0);
/* Create __index metamethods for context */ /* Create __index metamethods for context */
luaL_newlib(L, meta_index); luaL_newlib(L, meta_index);
@ -757,4 +739,3 @@ LSEC_API int luaopen_ssl_context(lua_State *L)
return 1; return 1;
} }
#endif

View File

@ -816,7 +816,6 @@ static luaL_Reg funcs[] = {
/** /**
* Initialize modules. * Initialize modules.
*/ */
#if (LUA_VERSION_NUM == 501)
LSEC_API int luaopen_ssl_core(lua_State *L) LSEC_API int luaopen_ssl_core(lua_State *L)
{ {
/* Initialize SSL */ /* Initialize SSL */
@ -836,37 +835,7 @@ LSEC_API int luaopen_ssl_core(lua_State *L)
/* Register the functions and tables */ /* Register the functions and tables */
luaL_newmetatable(L, "SSL:Connection"); luaL_newmetatable(L, "SSL:Connection");
luaL_register(L, NULL, meta); setfuncs(L, meta);
lua_newtable(L);
luaL_register(L, NULL, methods);
lua_setfield(L, -2, "__index");
luaL_register(L, "ssl.core", funcs);
return 1;
}
#else
LSEC_API int luaopen_ssl_core(lua_State *L)
{
/* Initialize SSL */
if (!SSL_library_init()) {
lua_pushstring(L, "unable to initialize SSL library");
lua_error(L);
}
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
#if defined(WITH_LUASOCKET)
/* Initialize internal library */
socket_open();
#endif
luaL_newmetatable(L, "SSL:SNI:Registry");
/* Register the functions and tables */
luaL_newmetatable(L, "SSL:Connection");
luaL_setfuncs(L, meta, 0);
luaL_newlib(L, methods); luaL_newlib(L, methods);
lua_setfield(L, -2, "__index"); lua_setfield(L, -2, "__index");
@ -875,4 +844,3 @@ LSEC_API int luaopen_ssl_core(lua_State *L)
return 1; return 1;
} }
#endif

View File

@ -566,30 +566,11 @@ static luaL_Reg funcs[] = {
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
#if (LUA_VERSION_NUM == 501)
LSEC_API int luaopen_ssl_x509(lua_State *L) LSEC_API int luaopen_ssl_x509(lua_State *L)
{ {
/* Register the functions and tables */ /* Register the functions and tables */
luaL_newmetatable(L, "SSL:Certificate"); luaL_newmetatable(L, "SSL:Certificate");
luaL_register(L, NULL, meta); setfuncs(L, meta);
lua_newtable(L);
luaL_register(L, NULL, methods);
lua_setfield(L, -2, "__index");
luaL_register(L, "ssl.x509", funcs);
return 1;
}
#else
LSEC_API int luaopen_ssl_x509(lua_State *L)
{
/* Register the functions and tables */
luaL_newmetatable(L, "SSL:Certificate");
luaL_setfuncs(L, meta, 0);
luaL_newlib(L, methods); luaL_newlib(L, methods);
lua_setfield(L, -2, "__index"); lua_setfield(L, -2, "__index");
@ -598,5 +579,3 @@ LSEC_API int luaopen_ssl_x509(lua_State *L)
return 1; return 1;
} }
#endif