wpa_debug: Support outputting hexdumps into syslog
This patch allows to log hexdumps into syslog. This is useful when testing, as syslog's network logging helps to collect debug outputs from several machines. Signed-hostapd: Nicolas Cavallari <cavallar@lri.fr>
This commit is contained in:
parent
4ac384c596
commit
f31e19df3a
1 changed files with 32 additions and 0 deletions
|
@ -166,6 +166,38 @@ static void _wpa_hexdump(int level, const char *title, const u8 *buf,
|
|||
size_t i;
|
||||
if (level < wpa_debug_level)
|
||||
return;
|
||||
#ifdef CONFIG_DEBUG_SYSLOG
|
||||
if (wpa_debug_syslog) {
|
||||
const char *display;
|
||||
char *strbuf = NULL;
|
||||
|
||||
if (buf == NULL) {
|
||||
display = " [NULL]";
|
||||
} else if (len == 0) {
|
||||
display = "";
|
||||
} else if (show && len) {
|
||||
strbuf = os_malloc(1 + 3 * len);
|
||||
if (strbuf == NULL) {
|
||||
wpa_printf(MSG_ERROR, "wpa_hexdump: Failed to "
|
||||
"allocate message buffer");
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
os_snprintf(&strbuf[i * 3], 4, " %02x",
|
||||
buf[i]);
|
||||
|
||||
display = strbuf;
|
||||
} else {
|
||||
display = " [REMOVED]";
|
||||
}
|
||||
|
||||
syslog(syslog_priority(level), "%s - hexdump(len=%lu):%s",
|
||||
title, len, display);
|
||||
os_free(strbuf);
|
||||
return;
|
||||
}
|
||||
#endif /* CONFIG_DEBUG_SYSLOG */
|
||||
wpa_debug_print_timestamp();
|
||||
#ifdef CONFIG_DEBUG_FILE
|
||||
if (out_file) {
|
||||
|
|
Loading…
Reference in a new issue