aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-09-18 16:47:18 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-09-18 16:47:18 +0100
commit547c3f34f40d2a08f909321afb46045277d23b8b (patch)
treee0ce2b63c63652cf55c5fcd01d9b3ccf77b92d70
parent2667d4c8cacd7301ffc1129020c41cba23b0d51f (diff)
downloadrspamd-547c3f34f40d2a08f909321afb46045277d23b8b.tar.gz
rspamd-547c3f34f40d2a08f909321afb46045277d23b8b.zip
[Minor] Allow stack pos in logger.logx as well
-rw-r--r--src/lua/lua_logger.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/lua/lua_logger.c b/src/lua/lua_logger.c
index d74e16ae9..69fa8e420 100644
--- a/src/lua/lua_logger.c
+++ b/src/lua/lua_logger.c
@@ -811,6 +811,7 @@ lua_logger_logx (lua_State *L)
const gchar *modname = lua_tostring (L, 2), *uid = NULL;
gchar logbuf[RSPAMD_LOGBUF_SIZE - 128];
gboolean ret;
+ gint stack_pos = 1;
if (lua_type (L, 3) == LUA_TSTRING) {
uid = luaL_checkstring (L, 3);
@@ -819,11 +820,20 @@ lua_logger_logx (lua_State *L)
uid = lua_logger_get_id (L, 3, NULL);
}
- if (uid && modname && lua_type (L, 4) == LUA_TSTRING) {
- ret = lua_logger_log_format (L, 4, FALSE, logbuf, sizeof (logbuf) - 1);
+ if (uid && modname) {
+ if (lua_type (L, 4) == LUA_TSTRING) {
+ ret = lua_logger_log_format (L, 4, FALSE, logbuf, sizeof (logbuf) - 1);
+ }
+ else if (lua_type (L, 4) == LUA_TNUMBER) {
+ stack_pos = lua_tonumber (L, 4);
+ ret = lua_logger_log_format (L, 5, FALSE, logbuf, sizeof (logbuf) - 1);
+ }
+ else {
+ return luaL_error (L, "invalid argument on pos 4");
+ }
if (ret) {
- lua_common_log_line (flags, L, logbuf, uid, modname, 1);
+ lua_common_log_line (flags, L, logbuf, uid, modname, stack_pos);
}
}
else {