]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Lua_logger: Support light userdata
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 16 Sep 2019 12:16:10 +0000 (13:16 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 16 Sep 2019 12:16:10 +0000 (13:16 +0100)
src/lua/lua_logger.c

index bca4bc6e3237ac7538cab52ddb27398038708e04..f76db8877c1a2c96b8a3d2ddab511d8a5e4b21da 100644 (file)
@@ -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 --;