From 7749a9f51d57266f42adc0cf25d8f885ebad382d Mon Sep 17 00:00:00 2001
From: Peter Wu <peter@lekensteyn.nl>
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 c169d1279d..21855e3980 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)) {