@@ -309,46 +309,55 @@ WOLFSSL_API void wolfSSL_SetLoggingPrefix(const char* prefix);
309309 int dc_log_printf (char * , ...);
310310#endif
311311
312- #ifdef WOLFSSL_DEBUG_PRINTF
312+ #ifdef WOLFSSL_DEBUG_PRINTF_FN
313313 /* user-supplied definition */
314314#elif defined(ARDUINO )
315315 /* ARDUINO only has print and sprintf, no printf. */
316316#elif defined(WOLFSSL_LOG_PRINTF ) || defined(WOLFSSL_DEOS )
317- #define WOLFSSL_DEBUG_PRINTF (...) printf(__VA_ARGS__)
317+ #define WOLFSSL_DEBUG_PRINTF_FN printf
318318#elif defined(THREADX ) && !defined(THREADX_NO_DC_PRINTF )
319- #define WOLFSSL_DEBUG_PRINTF (...) dc_log_printf(__VA_ARGS__)
319+ #define WOLFSSL_DEBUG_PRINTF_FN dc_log_printf
320320#elif defined(MICRIUM )
321- #define WOLFSSL_DEBUG_PRINTF (...) BSP_Ser_Printf(__VA_ARGS__)
321+ #define WOLFSSL_DEBUG_PRINTF_FN BSP_Ser_Printf
322322#elif defined(WOLFSSL_MDK_ARM )
323- #define WOLFSSL_DEBUG_PRINTF (...) do { \
324- fflush(stdout); \
325- printf(__VA_ARGS__); \
326- fflush(stdout); \
327- } while (0)
323+ #define WOLFSSL_DEBUG_PRINTF_FN printf
328324#elif defined(WOLFSSL_UTASKER )
329325 /* WOLFSSL_UTASKER only has fnDebugMsg and related primitives, no printf. */
330326#elif defined(MQX_USE_IO_OLD )
331- #define WOLFSSL_DEBUG_PRINTF (...) fprintf(_mqxio_stderr, __VAR_ARGS)
327+ #define WOLFSSL_DEBUG_PRINTF_FN fprintf
328+ #define WOLFSSL_DEBUG_PRINTF_FIRST_ARGS _mqxio_stderr,
332329#elif defined(WOLFSSL_APACHE_MYNEWT )
333- #define WOLFSSL_DEBUG_PRINTF (...) LOG_DEBUG(&mynewt_log, \
334- LOG_MODULE_DEFAULT, __VA_ARGS__)
330+ #define WOLFSSL_DEBUG_PRINTF_FN LOG_DEBUG
331+ #define WOLFSSL_DEBUG_PRINTF_FIRST_ARGS &mynewt_log, LOG_MODULE_DEFAULT,
335332#elif defined(WOLFSSL_ESPIDF )
336- #define WOLFSSL_DEBUG_PRINTF (...) ESP_LOGI("wolfssl", __VA_ARGS__)
333+ #define WOLFSSL_DEBUG_PRINTF_FN ESP_LOGI
334+ #define WOLFSSL_DEBUG_PRINTF_FIRST_ARGS "wolfssl",
337335#elif defined(WOLFSSL_ZEPHYR )
338- #define WOLFSSL_DEBUG_PRINTF (...) printk(__VA_ARGS__)
336+ #define WOLFSSL_DEBUG_PRINTF_FN printk
339337#elif defined(WOLFSSL_TELIT_M2MB )
340- #define WOLFSSL_DEBUG_PRINTF (...) M2M_LOG_INFO(__VA_ARGS__)
338+ #define WOLFSSL_DEBUG_PRINTF_FN M2M_LOG_INFO
341339#elif defined(WOLFSSL_ANDROID_DEBUG )
342- #define WOLFSSL_DEBUG_PRINTF (...) __android_log_print(ANDROID_LOG_VERBOSE, \
343- "[wolfSSL]", __VA_ARGS__)
340+ #define WOLFSSL_DEBUG_PRINTF_FN __android_log_print
341+ #define WOLFSSL_DEBUG_PRINTF_FIRST_ARGS ANDROID_LOG_VERBOSE, "[wolfSSL]"
344342#elif defined(WOLFSSL_XILINX )
345- #define WOLFSSL_DEBUG_PRINTF (...) xil_printf(__VA_ARGS__)
343+ #define WOLFSSL_DEBUG_PRINTF_FN xil_printf
346344#elif defined(WOLFSSL_LINUXKM )
347- #define WOLFSSL_DEBUG_PRINTF (...) printk(__VA_ARGS__)
345+ #define WOLFSSL_DEBUG_PRINTF_FN printk
348346#elif defined(WOLFSSL_RENESAS_RA6M4 )
349- #define WOLFSSL_DEBUG_PRINTF (...) myprintf(__VA_ARGS__)
347+ #define WOLFSSL_DEBUG_PRINTF_FN myprintf
350348#else
351- #define WOLFSSL_DEBUG_PRINTF (...) fprintf(stderr, __VA_ARGS__)
349+ #define WOLFSSL_DEBUG_PRINTF_FN fprintf
350+ #define WOLFSSL_DEBUG_PRINTF_FIRST_ARGS stderr,
351+ #endif
352+
353+ #ifndef WOLFSSL_DEBUG_PRINTF_FIRST_ARGS
354+ #define WOLFSSL_DEBUG_PRINTF_FIRST_ARGS
355+ #endif
356+
357+ #if defined(WOLFSSL_DEBUG_PRINTF_FN ) && !defined(WOLFSSL_DEBUG_PRINTF ) && \
358+ !defined(WOLF_NO_VARIADIC_MACROS )
359+ #define WOLFSSL_DEBUG_PRINTF (...) \
360+ WOLFSSL_DEBUG_PRINTF_FN(WOLFSSL_DEBUG_PRINTF_FIRST_ARGS __VA_ARGS__)
352361#endif
353362
354363#ifdef __cplusplus
0 commit comments