[sr-dev] git:master:47cde53e: app_lua: use lua_getstack() to init structure for debug info

Daniel-Constantin Mierla miconda at gmail.com
Thu Mar 28 05:08:49 CET 2019


Module: kamailio
Branch: master
Commit: 47cde53eb257898c25212523d013bd7e74a30b28
URL: https://github.com/kamailio/kamailio/commit/47cde53eb257898c25212523d013bd7e74a30b28

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2019-03-28T05:07:56+01:00

app_lua: use lua_getstack() to init structure for debug info

---

Modified: src/modules/app_lua/app_lua_sr.c

---

Diff:  https://github.com/kamailio/kamailio/commit/47cde53eb257898c25212523d013bd7e74a30b28.diff
Patch: https://github.com/kamailio/kamailio/commit/47cde53eb257898c25212523d013bd7e74a30b28.patch

---

diff --git a/src/modules/app_lua/app_lua_sr.c b/src/modules/app_lua/app_lua_sr.c
index ee655c3e54..bd3773e46c 100644
--- a/src/modules/app_lua/app_lua_sr.c
+++ b/src/modules/app_lua/app_lua_sr.c
@@ -1946,14 +1946,25 @@ int sr_kemi_lua_exec_func(lua_State* L, int eidx)
 		ms = TICKS_TO_MS(get_ticks_raw()) - ms;
 		if(ms >= cfg_get(core, core_cfg, latency_limit_action)
 				&& is_printable(cfg_get(core, core_cfg, latency_log))) {
-			lua_getinfo(L, "nSl", &dinfo);
-			LOG(cfg_get(core, core_cfg, latency_log),
-					"alert - action KSR.%s%s%s(...)"
-					" took too long [%u ms] (%s:%d - %s [%s])\n",
-					(ket->mname.len>0)?ket->mname.s:"",
-					(ket->mname.len>0)?".":"", ket->fname.s, ms,
-					dinfo.short_src, dinfo.currentline,
-					(dinfo.name?dinfo.name:"<unknown>"), dinfo.what);
+			memset(&dinfo, 0, sizeof(lua_Debug));
+			if(lua_getstack(L, 0, &dinfo)==0
+						&& lua_getinfo(L, "nSl", &dinfo)==0) {
+				LOG(cfg_get(core, core_cfg, latency_log),
+						"alert - action KSR.%s%s%s(...)"
+						" took too long [%u ms] (%s:%d - %s [%s])\n",
+						(ket->mname.len>0)?ket->mname.s:"",
+						(ket->mname.len>0)?".":"", ket->fname.s, ms,
+						(dinfo.short_src[0])?dinfo.short_src:"<unknown>",
+						dinfo.currentline,
+						(dinfo.name)?dinfo.name:"<unknown>",
+						(dinfo.what)?dinfo.what:"<unknown>");
+			} else {
+				LOG(cfg_get(core, core_cfg, latency_log),
+						"alert - action KSR.%s%s%s(...)"
+						" took too long [%u ms]\n",
+						(ket->mname.len>0)?ket->mname.s:"",
+						(ket->mname.len>0)?".":"", ket->fname.s, ms);
+			}
 		}
 	}
 




More information about the sr-dev mailing list