From: Victor Julien Date: Wed, 27 Nov 2019 11:01:01 +0000 (+0100) Subject: logging: turn SCLog and SCLogErr into funcs X-Git-Tag: suricata-6.0.0-beta1~529 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=481a1923b43b4bc8170ae7273c6f01bf6eab5600;p=thirdparty%2Fsuricata.git logging: turn SCLog and SCLogErr into funcs Reduces compiled code size. --- diff --git a/src/util-debug.c b/src/util-debug.c index a43ed2c884..6e3bf2c9bb 100644 --- a/src/util-debug.c +++ b/src/util-debug.c @@ -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 * diff --git a/src/util-debug.h b/src/util-debug.h index 2e8e4f02d3..ca2f552e2b 100644 --- a/src/util-debug.h +++ b/src/util-debug.h @@ -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.