未验证 提交 3753323d 编写于 作者: O openharmony_ci 提交者: Gitee

!135 WPA增加Hilogs打印能力

Merge pull request !135 from 毛宇锋/master
#Copyright (c) 2021 Huawei Device Co., Ltd.
#Copyright (c) 2021-2022 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
......@@ -62,6 +62,8 @@ ohos_shared_library("wpa_client") {
"$WPA_ROOT_DIR/build/include",
"//drivers/peripheral/wlan/client/include",
"//third_party/bounds_checking_function/include",
"//base/hiviewdfxhilog/interfaces/native/innerkits/include",
"//base/startup/syspara_lite/interfaces/innerkits/native/syspara/include",
]
cflags = [
......@@ -87,6 +89,11 @@ ohos_shared_library("wpa_client") {
"-DCONFIG_OPEN_HARMONY_PATCH",
]
deps = [
"//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog",
"//base/startup/syspara_lite/interfaces/innerkits/native/syspara:syspara",
]
if ("${CONFIG_DRIVER}" == "nl80211") {
include_dirs += [ "$WPA_ROOT_DIR/libnl/include/libnl3" ]
cflags += [
......@@ -266,6 +273,8 @@ ohos_shared_library("wpa") {
"//third_party/openssl/include",
"$WPA_ROOT_DIR/src/crypto",
"$WPA_ROOT_DIR/src/eap_common",
"//base/hiviewdfxhilog/interfaces/native/innerkits/include",
"//base/startup/syspara_lite/interfaces/innerkits/native/syspara/include",
]
cflags = [
......@@ -318,11 +327,14 @@ ohos_shared_library("wpa") {
defines = [ "TLS_DEFAULT_CIPHERS = \"DEFAULT:!EXP:!LOW\"" ]
deps = [
"//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog",
"//base/startup/syspara_lite/interfaces/innerkits/native/syspara:syspara",
"//drivers/peripheral/wlan/client:wifi_driver_client",
"//third_party/bounds_checking_function:libsec_static",
"//third_party/openssl:libcrypto_static",
"//third_party/openssl:ssl_source",
]
external_deps = [ "init:libbegetutil" ]
if ("${CONFIG_DRIVER}" == "nl80211") {
sources += [
......@@ -389,6 +401,8 @@ ohos_executable("wpa_cli") {
"$WPA_ROOT_DIR/src/drivers",
"$WPA_ROOT_DIR/wpa_supplicant",
"$WPA_ROOT_DIR/build/include",
"//base/hiviewdfxhilog/interfaces/native/innerkits/include",
"//base/startup/syspara_lite/interfaces/innerkits/native/syspara/include",
]
cflags = [
......@@ -435,6 +449,12 @@ ohos_executable("wpa_cli") {
"-DCONFIG_OHOS_P2P",
]
}
deps = [
"//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog",
"//base/startup/syspara_lite/interfaces/innerkits/native/syspara:syspara",
]
configs = [ ":wpa_warnings" ]
part_name = "wpa_supplicant-2.9"
subsystem_name = "wpa_supplicant-2.9"
......@@ -459,6 +479,8 @@ ohos_executable("hostapd_cli") {
"$WPA_ROOT_DIR/wpa_supplicant",
"$WPA_ROOT_DIR/build/include",
"$WPA_ROOT_DIR/libnl/include/libnl3",
"//base/hiviewdfxhilog/interfaces/native/innerkits/include",
"//base/startup/syspara_lite/interfaces/innerkits/native/syspara/include",
]
cflags = [
......@@ -497,6 +519,11 @@ ohos_executable("hostapd_cli") {
"-DCONFIG_OPEN_HARMONY_PATCH",
]
deps = [
"//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog",
"//base/startup/syspara_lite/interfaces/innerkits/native/syspara:syspara",
]
if ("${CONFIG_DRIVER}" == "nl80211") {
cflags += [
"-DCONFIG_DRIVER_NL80211",
......
......@@ -525,6 +525,9 @@ int wpa_ctrl_request(struct wpa_ctrl *ctrl, const char *cmd, size_t cmd_len,
const char *_cmd;
char *cmd_buf = NULL;
size_t _cmd_len;
#ifdef CONFIG_OPEN_HARMONY_PATCH
wpa_printf(MSG_INFO, "wpa_ctrl_request cmd: %s", cmd);
#endif // CONFIG_OPEN_HARMONY_PATCH
#ifdef CONFIG_CTRL_IFACE_UDP
if (ctrl->cookie) {
......
......@@ -29,8 +29,8 @@ static FILE *wpa_debug_tracing_file = NULL;
#endif /* CONFIG_DEBUG_LINUX_TRACING */
int wpa_debug_level = MSG_WARNING;
int wpa_debug_show_keys = 0;
int wpa_debug_level = MSG_DEBUG;
int wpa_debug_show_keys = 1;
int wpa_debug_timestamp = 0;
......@@ -194,6 +194,63 @@ void wpa_debug_close_linux_tracing(void)
#endif /* CONFIG_DEBUG_LINUX_TRACING */
#ifdef CONFIG_OPEN_HARMONY_PATCH
#include "hilog/log_c.h"
#include "parameter.h"
#ifdef LOG_DOMAIN
#undef LOG_DOMAIN
#endif // LOG_DOMAIN
#ifdef LOG_TAG
#undef LOG_TAG
#endif // LOG_TAG
#define LOG_DOMAIN 0xD0015C0
#define LOG_TAG "wpa_supplicant"
#define WPA_MAX_LOG_CHAR 1024
#define WPA_PROP_KEY_DEBUG_ON "persist.sys.wpa_debug_on"
#define PARAM_VALUE_LEN_MAX 10
enum {
WPA_HILOG_UNKNOWN, WPA_HILOG_UNSET, WPA_HILOG_SET
};
int32_t wpa_debug_hilog_switch = WPA_HILOG_UNKNOWN;
static int wpa_get_log_level(int level)
{
switch (level) {
case MSG_ERROR:
return LOG_ERROR;
case MSG_WARNING:
return LOG_WARN;
case MSG_INFO:
return LOG_INFO;
default:
return LOG_DEBUG;
}
}
static bool wpa_can_hilog()
{
switch (wpa_debug_hilog_switch) {
case WPA_HILOG_UNSET:
return false;
case WPA_HILOG_SET:
return true;
default:
break;
}
char prop[PARAM_VALUE_LEN_MAX] = { 0 };
if (GetParameter(WPA_PROP_KEY_DEBUG_ON, "0", prop, sizeof(prop)) > 0) {
if (atoi(prop) > 0) {
wpa_debug_hilog_switch = WPA_HILOG_SET;
return true;
}
}
wpa_debug_hilog_switch = WPA_HILOG_UNSET;
return false;
}
#endif // CONFIG_OPEN_HARMONY_PATCH
/**
* wpa_printf - conditional printf
......@@ -208,6 +265,23 @@ void wpa_debug_close_linux_tracing(void)
*/
void wpa_printf(int level, const char *fmt, ...)
{
#ifdef CONFIG_OPEN_HARMONY_PATCH
if (wpa_can_hilog()) {
int32_t ulPos = 0;
char szStr[WPA_MAX_LOG_CHAR] = {0};
va_list arg = {0};
int32_t ret;
va_start(arg, fmt);
ret = vsprintf(&szStr[ulPos], fmt, arg);
va_end(arg);
if (ret > 0) {
HiLogPrint(LOG_CORE, wpa_get_log_level(level), LOG_DOMAIN, LOG_TAG, "%{public}s", szStr);
}
return;
}
#endif
#ifdef CONFIG_WPA_NO_LOG
return;
#else
......@@ -264,6 +338,41 @@ static void _wpa_hexdump(int level, const char *title, const u8 *buf,
return;
#else
size_t i;
#ifdef CONFIG_OPEN_HARMONY_PATCH
if (wpa_can_hilog()) {
const char *display;
char *strbuf = NULL;
size_t slen = len;
if (buf == NULL) {
display = " [NULL]";
} else if (len == 0) {
display = "";
} else if (show && len) {
if (slen > 32)
slen = 32;
strbuf = os_malloc(1 + 3 * slen);
if (strbuf == NULL) {
wpa_printf(MSG_ERROR, "wpa_hexdump: Failed to "
"allocate message buffer");
return;
}
for (i = 0; i < slen; i++)
os_snprintf(&strbuf[i * 3], 4, " %02x",
buf[i]);
display = strbuf;
} else {
display = " [REMOVED]";
}
HiLogPrint(LOG_CORE, wpa_get_log_level(level), LOG_DOMAIN,
LOG_TAG, "%{public}s - hexdump(len=%{public}lu):%{public}s%{public}s",
title, (long unsigned int) len, display,
len > slen ? " ..." : "");
bin_clear_free(strbuf, 1 + 3 * slen);
return;
}
#endif
#ifdef CONFIG_DEBUG_LINUX_TRACING
if (wpa_debug_tracing_file != NULL) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册