]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Improve logging lua types
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 5 May 2016 08:26:43 +0000 (09:26 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 5 May 2016 08:26:43 +0000 (09:26 +0100)
src/lua/lua_common.h
src/lua/lua_logger.c

index c20d833ca305f9657dcb652798255fd7e1154751..73be9e0c51508ca094bfc14e0c0ded2bcccd73f1 100644 (file)
@@ -335,5 +335,16 @@ void lua_push_internet_address_list (lua_State *L, InternetAddressList *addrs);
  * @return
  */
 gboolean lua_push_internet_address (lua_State *L, InternetAddress *ia);
+
+/**
+ * Log lua object to string
+ * @param L
+ * @param pos
+ * @param outbuf
+ * @param len
+ * @return
+ */
+gsize lua_logger_out_type (lua_State *L, gint pos, gchar *outbuf,
+               gsize len);
 #endif /* WITH_LUA */
 #endif /* RSPAMD_LUA_H */
index 125f0ff80eb3b5f47390b9cec998d546ff2f329d..462838ba1fca9dab44713ac2716dd3e0d704ca85 100644 (file)
@@ -55,9 +55,6 @@ print(str)
 -- Output: a=string, b=1.50000, c=1, d={[1] = aa, [2] = 1, [3] = bb} e={[key]=value, [key2]=1.0}
  */
 
-static gsize lua_logger_out_type (lua_State *L, gint pos, gchar *outbuf,
-               gsize len);
-
 /* Logger methods */
 /***
  * @function logger.err(msg)
@@ -404,7 +401,7 @@ lua_logger_out_table (lua_State *L, gint pos, gchar *outbuf, gsize len)
 
 #undef MOVE_BUF
 
-static gsize
+gsize
 lua_logger_out_type (lua_State *L, gint pos, gchar *outbuf, gsize len)
 {
        gint type;
@@ -432,6 +429,12 @@ lua_logger_out_type (lua_State *L, gint pos, gchar *outbuf, gsize len)
                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);