fa5937aaed
Debug log messages generated by mbedTLS library contain newline at the end of log string. Remove this newline, if it exists, so that log output is much more user friendly. Add a dedicated Kconfig option for that, so it can be disabled on request. Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev>
58 lines
1.2 KiB
C
58 lines
1.2 KiB
C
/*
|
|
* Copyright (c) 2018 Nordic Semiconductor ASA
|
|
* Copyright (c) 2022 Marcin Niestroj
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <zephyr/logging/log.h>
|
|
LOG_MODULE_REGISTER(mbedtls, CONFIG_MBEDTLS_LOG_LEVEL);
|
|
|
|
#include "zephyr_mbedtls_priv.h"
|
|
|
|
void zephyr_mbedtls_debug(void *ctx, int level, const char *file, int line, const char *str)
|
|
{
|
|
const char *p, *basename = file;
|
|
int str_len;
|
|
|
|
ARG_UNUSED(ctx);
|
|
|
|
if (!file || !str) {
|
|
return;
|
|
}
|
|
|
|
/* Extract basename from file */
|
|
if (IS_ENABLED(CONFIG_MBEDTLS_DEBUG_EXTRACT_BASENAME_AT_RUNTIME)) {
|
|
for (p = basename = file; *p != '\0'; p++) {
|
|
if (*p == '/' || *p == '\\') {
|
|
basename = p + 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
str_len = strlen(str);
|
|
|
|
if (IS_ENABLED(CONFIG_MBEDTLS_DEBUG_STRIP_NEWLINE)) {
|
|
/* Remove newline only when it exists */
|
|
if (str_len > 0 && str[str_len - 1] == '\n') {
|
|
str_len--;
|
|
}
|
|
}
|
|
|
|
switch (level) {
|
|
case 0:
|
|
case 1:
|
|
LOG_ERR("%s:%04d: %.*s", basename, line, str_len, str);
|
|
break;
|
|
case 2:
|
|
LOG_WRN("%s:%04d: %.*s", basename, line, str_len, str);
|
|
break;
|
|
case 3:
|
|
LOG_INF("%s:%04d: %.*s", basename, line, str_len, str);
|
|
break;
|
|
default:
|
|
LOG_DBG("%s:%04d: %.*s", basename, line, str_len, str);
|
|
break;
|
|
}
|
|
}
|