summaryrefslogtreecommitdiffstats
path: root/src/lua/lua_rsa.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2019-09-16 13:10:42 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2019-09-16 13:10:42 +0100
commit5ef148649daca54714bd141bd473072250b46d83 (patch)
tree658841acc4d3a4cd208af3fc31449749c64e761f /src/lua/lua_rsa.c
parent35818aec2c5f6e70423fa2954fc9a344b5fe56f0 (diff)
downloadrspamd-5ef148649daca54714bd141bd473072250b46d83.tar.gz
rspamd-5ef148649daca54714bd141bd473072250b46d83.zip
[Rework] Lua core: Use lightuserdata to index classes
Diffstat (limited to 'src/lua/lua_rsa.c')
-rw-r--r--src/lua/lua_rsa.c36
1 files changed, 6 insertions, 30 deletions
diff --git a/src/lua/lua_rsa.c b/src/lua/lua_rsa.c
index 58607f92c..4b2caa2bf 100644
--- a/src/lua/lua_rsa.c
+++ b/src/lua/lua_rsa.c
@@ -719,40 +719,16 @@ lua_load_rsa (lua_State * L)
void
luaopen_rsa (lua_State * L)
{
- luaL_newmetatable (L, "rspamd{rsa_pubkey}");
- lua_pushstring (L, "__index");
- lua_pushvalue (L, -2);
- lua_settable (L, -3);
-
- lua_pushstring (L, "class");
- lua_pushstring (L, "rspamd{rsa_pubkey}");
- lua_rawset (L, -3);
-
- luaL_register (L, NULL, rsapubkeylib_m);
+ rspamd_lua_new_class (L, "rspamd{rsa_pubkey}", rsapubkeylib_m);
+ lua_pop (L, 1);
rspamd_lua_add_preload (L, "rspamd_rsa_pubkey", lua_load_pubkey);
- luaL_newmetatable (L, "rspamd{rsa_privkey}");
- lua_pushstring (L, "__index");
- lua_pushvalue (L, -2);
- lua_settable (L, -3);
-
- lua_pushstring (L, "class");
- lua_pushstring (L, "rspamd{rsa_privkey}");
- lua_rawset (L, -3);
-
- luaL_register (L, NULL, rsaprivkeylib_m);
+ rspamd_lua_new_class (L, "rspamd{rsa_privkey}", rsaprivkeylib_m);
+ lua_pop (L, 1);
rspamd_lua_add_preload (L, "rspamd_rsa_privkey", lua_load_privkey);
- luaL_newmetatable (L, "rspamd{rsa_signature}");
- lua_pushstring (L, "__index");
- lua_pushvalue (L, -2);
- lua_settable (L, -3);
-
- lua_pushstring (L, "class");
- lua_pushstring (L, "rspamd{rsa_signature}");
- lua_rawset (L, -3);
-
- luaL_register (L, NULL, rsasignlib_m);
+ rspamd_lua_new_class (L, "rspamd{rsa_signature}", rsasignlib_m);
+ lua_pop (L, 1);
rspamd_lua_add_preload (L, "rspamd_rsa_signature", lua_load_signature);
rspamd_lua_add_preload (L, "rspamd_rsa", lua_load_rsa);