From 66fb74246b4b27d65d79e45e0280fe3ab71c0923 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 16 Sep 2019 13:16:10 +0100 Subject: [PATCH] [Minor] Lua_logger: Support light userdata --- src/lua/lua_logger.c | 53 +++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/lua/lua_logger.c b/src/lua/lua_logger.c index bca4bc6e3..f76db8877 100644 --- a/src/lua/lua_logger.c +++ b/src/lua/lua_logger.c @@ -575,31 +575,34 @@ lua_logger_out_type (lua_State *L, gint pos, trace->cur_level ++; switch (type) { - case LUA_TNUMBER: - r = lua_logger_out_num (L, pos, outbuf, len, trace); - break; - case LUA_TBOOLEAN: - r = lua_logger_out_boolean (L, pos, outbuf, len, trace); - break; - case LUA_TTABLE: - r = lua_logger_out_table (L, pos, outbuf, len, trace, esc_type); - break; - case LUA_TUSERDATA: - r = lua_logger_out_userdata (L, pos, outbuf, len, trace); - break; - case LUA_TFUNCTION: - r = rspamd_snprintf (outbuf, len + 1, "function"); - break; - case LUA_TNIL: - r = rspamd_snprintf (outbuf, len + 1, "nil"); - break; - case LUA_TNONE: - r = rspamd_snprintf (outbuf, len + 1, "no value"); - break; - default: - /* Try to push everything as string using tostring magic */ - r = lua_logger_out_str (L, pos, outbuf, len, trace, esc_type); - break; + case LUA_TNUMBER: + r = lua_logger_out_num (L, pos, outbuf, len, trace); + break; + case LUA_TBOOLEAN: + r = lua_logger_out_boolean (L, pos, outbuf, len, trace); + break; + case LUA_TTABLE: + r = lua_logger_out_table (L, pos, outbuf, len, trace, esc_type); + break; + case LUA_TUSERDATA: + r = lua_logger_out_userdata (L, pos, outbuf, len, trace); + break; + case LUA_TFUNCTION: + r = rspamd_snprintf (outbuf, len + 1, "function"); + break; + case LUA_TLIGHTUSERDATA: + r = rspamd_snprintf (outbuf, len + 1, "0x%p", lua_topointer (L, pos)); + break; + case LUA_TNIL: + r = rspamd_snprintf (outbuf, len + 1, "nil"); + break; + case LUA_TNONE: + r = rspamd_snprintf (outbuf, len + 1, "no value"); + break; + default: + /* Try to push everything as string using tostring magic */ + r = lua_logger_out_str (L, pos, outbuf, len, trace, esc_type); + break; } trace->cur_level --; -- 2.39.5