diff options
Diffstat (limited to 'src/lua/lua_common.c')
-rw-r--r-- | src/lua/lua_common.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/lua/lua_common.c b/src/lua/lua_common.c index 80a9423d9..248f1dbc3 100644 --- a/src/lua/lua_common.c +++ b/src/lua/lua_common.c @@ -2346,4 +2346,35 @@ rspamd_lua_push_words (lua_State *L, GArray *words, } return 1; +} + +gchar * +rspamd_lua_get_module_name (lua_State *L) +{ + lua_Debug d; + gchar *p; + gchar func_buf[128]; + + if (lua_getstack (L, 1, &d) == 1) { + (void) lua_getinfo (L, "Sl", &d); + if ((p = strrchr (d.short_src, '/')) == NULL) { + p = d.short_src; + } + else { + p++; + } + + if (strlen (p) > 20) { + rspamd_snprintf (func_buf, sizeof (func_buf), "%10s...]:%d", p, + d.currentline); + } + else { + rspamd_snprintf (func_buf, sizeof (func_buf), "%s:%d", p, + d.currentline); + } + + return g_strdup (func_buf); + } + + return NULL; }
\ No newline at end of file |