]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Make dlua_push_mail_user() take lua_State * directly
authorJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Tue, 12 Jan 2021 19:26:07 +0000 (14:26 -0500)
committerJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Tue, 12 Jan 2021 19:26:07 +0000 (14:26 -0500)
src/lib-storage/mail-storage-lua.h
src/lib-storage/mail-user-lua.c
src/plugins/mail-lua/mail-lua-plugin.c
src/plugins/push-notification/push-notification-driver-lua.c

index 13d4469e9a401e3eff84dbe317984f46eff89fdd..6fdded48cad75f074053210e1c9e33f5c9bf7b32 100644 (file)
@@ -10,7 +10,7 @@ struct mail;
 struct dlua_script;
 
 void dlua_register_mail_storage(struct dlua_script *script);
-void dlua_push_mail_user(struct dlua_script *script, struct mail_user *user);
+void dlua_push_mail_user(lua_State *L, struct mail_user *user);
 void dlua_push_mailbox(lua_State *L, struct mailbox *box);
 void dlua_push_mail(struct dlua_script *script, struct mail *mail);
 
index 1d3a0f85e29a2b5dd51d0679ea1836df9d43a711..0986d04a99e6a70bf68f328607470041c6b93595 100644 (file)
 
 static int lua_storage_mail_user_unref(lua_State *L);
 
-void dlua_push_mail_user(struct dlua_script *script, struct mail_user *user)
+void dlua_push_mail_user(lua_State *L, struct mail_user *user)
 {
-       luaL_checkstack(script->L, 20, "out of memory");
+       luaL_checkstack(L, 20, "out of memory");
        /* create a table for holding few things */
-       lua_createtable(script->L, 0, 20);
-       luaL_setmetatable(script->L, LUA_STORAGE_MAIL_USER);
+       lua_createtable(L, 0, 20);
+       luaL_setmetatable(L, LUA_STORAGE_MAIL_USER);
 
        mail_user_ref(user);
-       struct mail_user **ptr = lua_newuserdata(script->L, sizeof(struct mail_user*));
+       struct mail_user **ptr = lua_newuserdata(L, sizeof(struct mail_user*));
        *ptr = user;
-       lua_createtable(script->L, 0, 1);
-       lua_pushcfunction(script->L, lua_storage_mail_user_unref);
-       lua_setfield(script->L, -2, "__gc");
-       lua_setmetatable(script->L, -2);
-       lua_setfield(script->L, -2, "item");
+       lua_createtable(L, 0, 1);
+       lua_pushcfunction(L, lua_storage_mail_user_unref);
+       lua_setfield(L, -2, "__gc");
+       lua_setmetatable(L, -2);
+       lua_setfield(L, -2, "item");
 
 #undef LUA_TABLE_SETNUMBER
 #define LUA_TABLE_SETNUMBER(field) \
-       lua_pushnumber(script->L, user->field); \
-       lua_setfield(script->L, -2, #field);
+       lua_pushnumber(L, user->field); \
+       lua_setfield(L, -2, #field);
 #undef LUA_TABLE_SETBOOL
 #define LUA_TABLE_SETBOOL(field) \
-       lua_pushboolean(script->L, user->field); \
-       lua_setfield(script->L, -2, #field);
+       lua_pushboolean(L, user->field); \
+       lua_setfield(L, -2, #field);
 #undef LUA_TABLE_SETSTRING
 #define LUA_TABLE_SETSTRING(field) \
-       lua_pushstring(script->L, user->field); \
-       lua_setfield(script->L, -2, #field);
+       lua_pushstring(L, user->field); \
+       lua_setfield(L, -2, #field);
 
        const char *home = NULL;
        (void)mail_user_get_home(user, &home);
 
-       lua_pushstring(script->L, home);
-       lua_setfield(script->L, -2, "home");
+       lua_pushstring(L, home);
+       lua_setfield(L, -2, "home");
 
        LUA_TABLE_SETSTRING(username);
        LUA_TABLE_SETNUMBER(uid);
index c58c098ea11d8c26403a63bc0700fe0073d3e3eb..2d799977b897fee1a4d2e8e40e4e57ab92ba8b84 100644 (file)
@@ -37,7 +37,7 @@ static int mail_lua_call_hook(struct dlua_script *script,
        if (user->mail_debug)
                e_debug(user->event, "mail-lua: Calling %s(user)", hook);
 
-       dlua_push_mail_user(script, user);
+       dlua_push_mail_user(script->L, user);
 
        if (lua_pcall(script->L, 1, 2, 0) != 0) {
                *error_r = t_strdup_printf("%s(user) failed: %s",
index 0d78534aba20ad7286fe94185f011298c2ead910..b514599ed4555b66003a0eaaf03a0c67bb14512b 100644 (file)
@@ -208,7 +208,7 @@ push_notification_driver_lua_begin_txn(
                user->username);
 
        /* Push mail user as argument */
-       dlua_push_mail_user(ctx->script, user);
+       dlua_push_mail_user(ctx->script->L, user);
        if (lua_pcall(ctx->script->L, 1, 1, 0) != 0) {
                const char *error = lua_tostring(ctx->script->L, -1);
                event_add_str(event, "error", error);