]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
logging: turn SCLog and SCLogErr into funcs
authorVictor Julien <victor@inliniac.net>
Wed, 27 Nov 2019 11:01:01 +0000 (12:01 +0100)
committerVictor Julien <victor@inliniac.net>
Fri, 10 Apr 2020 19:06:35 +0000 (21:06 +0200)
Reduces compiled code size.

src/util-debug.c
src/util-debug.h

index a43ed2c884db8dbf7e29d7d75912d4e3e99674ba..6e3bf2c9bbafda7aa1eabc87913c4224b2e1c646 100644 (file)
@@ -615,6 +615,44 @@ SCError SCLogMessage(const SCLogLevel log_level, const char *file,
     return SC_OK;
 }
 
+void SCLog(int x, const char *file, const char *func, const int line,
+        const char *fmt, ...)
+{
+    if (sc_log_global_log_level >= x &&
+            (sc_log_fg_filters_present == 0 ||
+             SCLogMatchFGFilterWL(file, func, line) == 1 ||
+             SCLogMatchFGFilterBL(file, func, line) == 1) &&
+            (sc_log_fd_filters_present == 0 ||
+             SCLogMatchFDFilter(func) == 1))
+    {
+        char msg[SC_LOG_MAX_LOG_MSG_LEN];
+        va_list ap;
+        va_start(ap, fmt);
+        vsnprintf(msg, sizeof(msg), fmt, ap);
+        va_end(ap);
+        SCLogMessage(x, file, line, func, SC_OK, msg);
+    }
+}
+
+void SCLogErr(int x, const char *file, const char *func, const int line,
+        const int err, const char *fmt, ...)
+{
+    if (sc_log_global_log_level >= x &&
+            (sc_log_fg_filters_present == 0 ||
+             SCLogMatchFGFilterWL(file, func, line) == 1 ||
+             SCLogMatchFGFilterBL(file, func, line) == 1) &&
+            (sc_log_fd_filters_present == 0 ||
+             SCLogMatchFDFilter(func) == 1))
+    {
+        char msg[SC_LOG_MAX_LOG_MSG_LEN];
+        va_list ap;
+        va_start(ap, fmt);
+        vsnprintf(msg, sizeof(msg), fmt, ap);
+        va_end(ap);
+        SCLogMessage(x, file, line, func, err, msg);
+    }
+}
+
 /**
  * \brief Returns whether debug messages are enabled to be logged or not
  *
index 2e8e4f02d3f87d4c30cf4735e4880ed13d67dc8e..ca2f552e2b98093f167635071d02256340043f93 100644 (file)
@@ -206,43 +206,10 @@ extern int sc_log_module_initialized;
 
 extern int sc_log_module_cleaned;
 
-#define SCLog(x, file, func, line, ...)                                         \
-    do {                                                                        \
-        if (sc_log_global_log_level >= x &&                                     \
-               (sc_log_fg_filters_present == 0 ||                               \
-                SCLogMatchFGFilterWL(file, func, line) == 1 ||                  \
-                SCLogMatchFGFilterBL(file, func, line) == 1) &&                 \
-               (sc_log_fd_filters_present == 0 ||                               \
-                SCLogMatchFDFilter(func) == 1))                                 \
-        {                                                                       \
-            char _sc_log_msg[SC_LOG_MAX_LOG_MSG_LEN];                           \
-                                                                                \
-            int _sc_log_ret = snprintf(_sc_log_msg, SC_LOG_MAX_LOG_MSG_LEN, __VA_ARGS__);   \
-            if (_sc_log_ret == SC_LOG_MAX_LOG_MSG_LEN)                          \
-                _sc_log_msg[SC_LOG_MAX_LOG_MSG_LEN - 1] = '\0';                 \
-                                                                                \
-            SCLogMessage(x, file, line, func, SC_OK, _sc_log_msg);              \
-        }                                                                       \
-    } while(0)
-
-#define SCLogErr(x, file, func, line, err, ...)                                 \
-    do {                                                                        \
-        if (sc_log_global_log_level >= x &&                                     \
-               (sc_log_fg_filters_present == 0 ||                               \
-                SCLogMatchFGFilterWL(file, func, line) == 1 ||                  \
-                SCLogMatchFGFilterBL(file, func, line) == 1) &&                 \
-               (sc_log_fd_filters_present == 0 ||                               \
-                SCLogMatchFDFilter(func) == 1))                                 \
-        {                                                                       \
-            char _sc_log_msg[SC_LOG_MAX_LOG_MSG_LEN];                           \
-                                                                                \
-            int _sc_log_ret = snprintf(_sc_log_msg, SC_LOG_MAX_LOG_MSG_LEN, __VA_ARGS__);   \
-            if (_sc_log_ret == SC_LOG_MAX_LOG_MSG_LEN)                          \
-                _sc_log_msg[SC_LOG_MAX_LOG_MSG_LEN - 1] = '\0';                 \
-                                                                                \
-            SCLogMessage(x, file, line, func, err, _sc_log_msg);                \
-        }                                                                       \
-    } while(0)
+void SCLog(int x, const char *file, const char *func, const int line,
+        const char *fmt, ...) ATTR_FMT_PRINTF(5,6);
+void SCLogErr(int x, const char *file, const char *func, const int line,
+        const int err, const char *fmt, ...) ATTR_FMT_PRINTF(6,7);
 
 /**
  * \brief Macro used to log INFORMATIONAL messages.