From 02cc5bcd14d1c08e41189081050c66eeef2f0c2c Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Sun, 30 Aug 2015 22:30:32 +0200 Subject: [PATCH] Restore LUA dialplan ACTIONS functionality Since using SWIG 2.0 to generate the code, two new items have been pushed on the stack. Use relative stack indices to avoid breakage. FS-8099 #resolve --- src/mod/languages/mod_lua/mod_lua.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mod/languages/mod_lua/mod_lua.cpp b/src/mod/languages/mod_lua/mod_lua.cpp index bb835b09e0..433b6e3e8f 100644 --- a/src/mod/languages/mod_lua/mod_lua.cpp +++ b/src/mod/languages/mod_lua/mod_lua.cpp @@ -591,7 +591,7 @@ SWITCH_STANDARD_DIALPLAN(lua_dialplan_hunt) /* expecting ACTIONS = { {"app1", "app_data1"}, { "app2" }, "app3" } -- each of three is valid */ lua_getglobal(L, "ACTIONS"); - if (!lua_istable(L, 1)) { + if (!lua_istable(L, -1)) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Global variable ACTIONS may only be a table\n"); goto done; @@ -599,7 +599,7 @@ SWITCH_STANDARD_DIALPLAN(lua_dialplan_hunt) lua_pushnil(L); /* STACK = tab | nil */ - while (lua_next(L, 1) != 0) { /* STACK = tab | k1 .. kn | vn */ + while (lua_next(L, -2) != 0) { /* STACK = tab | k1 .. kn | vn */ char *application = NULL, *app_data = NULL; if (lua_isstring(L, -1)) {