52#if defined(__clang__) || (defined(__GNUC__) && defined(__has_attribute))
53#if __has_attribute(format)
54#define LIBSRTP_FORMAT_PRINTF(fmt, args) \
55 __attribute__((format(__printf__, fmt, args)))
57#define LIBSRTP_FORMAT_PRINTF(fmt, args)
60#define LIBSRTP_FORMAT_PRINTF(fmt, args)
81 srtp_err_level_warning,
84} srtp_err_reporting_level_t;
94typedef void(srtp_err_report_handler_func_t)(srtp_err_reporting_level_t level,
98 srtp_err_report_handler_func_t func);
110void srtp_err_report(srtp_err_reporting_level_t level,
const char *format, ...)
111 LIBSRTP_FORMAT_PRINTF(2, 3);
122#ifdef ENABLE_DEBUG_LOGGING
124#define debug_print0(mod, format) \
125 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name)
126#define debug_print(mod, format, arg) \
127 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name, arg)
128#define debug_print2(mod, format, arg1, arg2) \
129 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name, \
134#define debug_print0(mod, format) \
136 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name)
137#define debug_print(mod, format, arg) \
139 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name, arg)
140#define debug_print2(mod, format, arg1, arg2) \
142 srtp_err_report(srtp_err_level_debug, ("%s: " format "\n"), mod.name, \
srtp_err_status_t
srtp_err_status_t defines error codes.
Definition: srtp.h:164