mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-23 00:35:50 +01:00
Rework debug to not need dynamic alloc
But introduces dependency on variadic macros
This commit is contained in:
parent
a7c8903ca6
commit
b74c245a20
@ -38,8 +38,11 @@
|
|||||||
|
|
||||||
#if defined(MBEDTLS_DEBUG_C)
|
#if defined(MBEDTLS_DEBUG_C)
|
||||||
|
|
||||||
|
#define MBEDTLS_DEBUG_STRIP_PARENS( ... ) __VA_ARGS__
|
||||||
|
|
||||||
#define MBEDTLS_SSL_DEBUG_MSG( level, args ) \
|
#define MBEDTLS_SSL_DEBUG_MSG( level, args ) \
|
||||||
mbedtls_debug_print_msg_free( ssl, level, __FILE__, __LINE__, mbedtls_debug_fmt args )
|
mbedtls_debug_print_fmt( ssl, level, __FILE__, __LINE__, \
|
||||||
|
MBEDTLS_DEBUG_STRIP_PARENS args )
|
||||||
|
|
||||||
#define MBEDTLS_SSL_DEBUG_RET( level, text, ret ) \
|
#define MBEDTLS_SSL_DEBUG_RET( level, text, ret ) \
|
||||||
mbedtls_debug_print_ret( ssl, level, __FILE__, __LINE__, text, ret )
|
mbedtls_debug_print_ret( ssl, level, __FILE__, __LINE__, text, ret )
|
||||||
@ -86,13 +89,9 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
void mbedtls_debug_set_threshold( int threshold );
|
void mbedtls_debug_set_threshold( int threshold );
|
||||||
|
|
||||||
char *mbedtls_debug_fmt( const char *format, ... );
|
void mbedtls_debug_print_fmt( const mbedtls_ssl_context *ssl, int level,
|
||||||
|
const char *file, int line,
|
||||||
void mbedtls_debug_print_msg( const mbedtls_ssl_context *ssl, int level,
|
const char *format, ... );
|
||||||
const char *file, int line, const char *text );
|
|
||||||
|
|
||||||
void mbedtls_debug_print_msg_free( const mbedtls_ssl_context *ssl, int level,
|
|
||||||
const char *file, int line, char *text );
|
|
||||||
|
|
||||||
void mbedtls_debug_print_ret( const mbedtls_ssl_context *ssl, int level,
|
void mbedtls_debug_print_ret( const mbedtls_ssl_context *ssl, int level,
|
||||||
const char *file, int line,
|
const char *file, int line,
|
||||||
|
@ -52,35 +52,35 @@ void mbedtls_debug_set_threshold( int threshold )
|
|||||||
debug_threshold = threshold;
|
debug_threshold = threshold;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *mbedtls_debug_fmt( const char *format, ... )
|
void mbedtls_debug_print_fmt( const mbedtls_ssl_context *ssl, int level,
|
||||||
|
const char *file, int line,
|
||||||
|
const char *format, ... )
|
||||||
{
|
{
|
||||||
va_list argp;
|
va_list argp;
|
||||||
char *str = mbedtls_calloc( DEBUG_BUF_SIZE, 1 );
|
char str[DEBUG_BUF_SIZE];
|
||||||
|
int ret;
|
||||||
|
|
||||||
if( str == NULL )
|
if( ssl->conf == NULL || ssl->conf->f_dbg == NULL || level > debug_threshold )
|
||||||
return( NULL );
|
return;
|
||||||
|
|
||||||
va_start( argp, format );
|
va_start( argp, format );
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
_vsnprintf_s( str, DEBUG_BUF_SIZE, _TRUNCATE, format, argp );
|
ret = _vsnprintf_s( str, DEBUG_BUF_SIZE, _TRUNCATE, format, argp );
|
||||||
#else
|
#else
|
||||||
vsnprintf( str, DEBUG_BUF_SIZE, format, argp );
|
ret = vsnprintf( str, DEBUG_BUF_SIZE, format, argp );
|
||||||
#endif
|
#endif
|
||||||
va_end( argp );
|
va_end( argp );
|
||||||
|
|
||||||
return( str );
|
if( ret >= 0 && ret < DEBUG_BUF_SIZE - 1 )
|
||||||
|
{
|
||||||
|
str[ret] = '\n';
|
||||||
|
str[ret + 1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
ssl->conf->f_dbg( ssl->conf->p_dbg, level, file, line, str );
|
||||||
}
|
}
|
||||||
|
|
||||||
void mbedtls_debug_print_msg_free( const mbedtls_ssl_context *ssl, int level,
|
static void mbedtls_debug_print_msg( const mbedtls_ssl_context *ssl, int level,
|
||||||
const char *file, int line, char *text )
|
|
||||||
{
|
|
||||||
if( text != NULL )
|
|
||||||
mbedtls_debug_print_msg( ssl, level, file, line, text );
|
|
||||||
|
|
||||||
mbedtls_free( text );
|
|
||||||
}
|
|
||||||
|
|
||||||
void mbedtls_debug_print_msg( const mbedtls_ssl_context *ssl, int level,
|
|
||||||
const char *file, int line, const char *text )
|
const char *file, int line, const char *text )
|
||||||
{
|
{
|
||||||
char str[DEBUG_BUF_SIZE];
|
char str[DEBUG_BUF_SIZE];
|
||||||
|
@ -59,8 +59,8 @@ void debug_print_msg_threshold( int threshold, int level, char *file, int line,
|
|||||||
mbedtls_debug_set_threshold( threshold );
|
mbedtls_debug_set_threshold( threshold );
|
||||||
mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
|
mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer);
|
||||||
|
|
||||||
mbedtls_debug_print_msg_free( &ssl, level, file, line,
|
mbedtls_debug_print_fmt( &ssl, level, file, line,
|
||||||
mbedtls_debug_fmt("Text message, 2 == %d", 2 ) );
|
"Text message, 2 == %d", 2 );
|
||||||
|
|
||||||
TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
|
TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 );
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user