/* * Copyright (c) 2018 Nordic Semiconductor ASA * Copyright (c) 2022 Marcin Niestroj * * SPDX-License-Identifier: Apache-2.0 */ #include 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; } }