summaryrefslogtreecommitdiffstats
path: root/src/util/util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/util.h')
-rw-r--r--src/util/util.h78
1 files changed, 7 insertions, 71 deletions
diff --git a/src/util/util.h b/src/util/util.h
index 04fe0cefb..7650e3e9a 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -68,7 +68,8 @@ extern int debug_timestamps;
extern int debug_microseconds;
extern int debug_to_file;
extern const char *debug_log_file;
-void debug_fn(const char *format, ...) SSS_ATTRIBUTE_PRINTF(1, 2);
+void debug_fn(const char *function, int newlevel, const char *format, ...)
+ SSS_ATTRIBUTE_PRINTF(3, 4);
int debug_get_level(int old_level);
int debug_convert_old_level(int old_level);
errno_t set_debug_file_from_fd(const int fd);
@@ -108,6 +109,8 @@ errno_t set_debug_file_from_fd(const int fd);
{"debug-microseconds", 0, POPT_ARG_INT, &debug_microseconds, 0, \
_("Show timestamps with microseconds"), NULL},
+#define DEBUG_UNWRAP(...) __VA_ARGS__
+
/** \def DEBUG(level, body)
\brief macro to generate debug messages
@@ -125,76 +128,9 @@ errno_t set_debug_file_from_fd(const int fd);
*/
#define DEBUG(level, body) do { \
int __debug_macro_newlevel = debug_get_level(level); \
- if (DEBUG_IS_SET(__debug_macro_newlevel)) { \
- if (debug_timestamps) { \
- struct timeval __debug_macro_tv; \
- struct tm *__debug_macro_tm; \
- char __debug_macro_datetime[20]; \
- int __debug_macro_year; \
- gettimeofday(&__debug_macro_tv, NULL); \
- __debug_macro_tm = localtime(&__debug_macro_tv.tv_sec); \
- __debug_macro_year = __debug_macro_tm->tm_year + 1900; \
- /* get date time without year */ \
- memcpy(__debug_macro_datetime, ctime(&__debug_macro_tv.tv_sec), 19); \
- __debug_macro_datetime[19] = '\0'; \
- if (debug_microseconds) { \
- debug_fn("(%s:%.6ld %d) [%s] [%s] (%#.4x): ", \
- __debug_macro_datetime, __debug_macro_tv.tv_usec, \
- __debug_macro_year, debug_prg_name, \
- __FUNCTION__, __debug_macro_newlevel); \
- } else { \
- debug_fn("(%s %d) [%s] [%s] (%#.4x): ", \
- __debug_macro_datetime, __debug_macro_year, \
- debug_prg_name, __FUNCTION__, __debug_macro_newlevel); \
- } \
- } else { \
- debug_fn("[%s] [%s] (%#.4x): ", \
- debug_prg_name, __FUNCTION__, __debug_macro_newlevel); \
- } \
- debug_fn body; \
- } \
-} while(0)
-
-/** \def DEBUG_MSG(level, function, message)
- \brief macro to generate debug messages with message from variable
-
- \param level the debug level, please use one of the SSSDBG_* macros
-
- \param function name of the function where DEBUG_MSG is called
-
- \param message message to be send (should not end with \n)
-*/
-#define DEBUG_MSG(level, function, message) do { \
- int __debug_macro_newlevel = debug_get_level(level); \
- if (DEBUG_IS_SET(__debug_macro_newlevel)) { \
- if (debug_timestamps) { \
- struct timeval __debug_macro_tv; \
- struct tm *__debug_macro_tm; \
- char __debug_macro_datetime[20]; \
- int __debug_macro_year; \
- gettimeofday(&__debug_macro_tv, NULL); \
- __debug_macro_tm = localtime(&__debug_macro_tv.tv_sec); \
- __debug_macro_year = __debug_macro_tm->tm_year + 1900; \
- /* get date time without year */ \
- memcpy(__debug_macro_datetime, ctime(&__debug_macro_tv.tv_sec), 19); \
- __debug_macro_datetime[19] = '\0'; \
- if (debug_microseconds) { \
- debug_fn("(%s:%.6ld %d) [%s] [%s] (%#.4x): %s\n", \
- __debug_macro_datetime, __debug_macro_tv.tv_usec, \
- __debug_macro_year, debug_prg_name, \
- function, __debug_macro_newlevel, message); \
- } else { \
- debug_fn("(%s %d) [%s] [%s] (%#.4x): %s\n", \
- __debug_macro_datetime, __debug_macro_year, \
- debug_prg_name, function, __debug_macro_newlevel, \
- message); \
- } \
- } else { \
- debug_fn("[%s] [%s] (%#.4x): %s\n", \
- debug_prg_name, function, __debug_macro_newlevel, message); \
- } \
- } \
-} while(0)
+ if (DEBUG_IS_SET(__debug_macro_newlevel)) \
+ debug_fn(__FUNCTION__, __debug_macro_newlevel, DEBUG_UNWRAP body); \
+} while (0)
/** \def DEBUG_IS_SET(level)
\brief checks whether level (must be in new format) is set in debug_level