|
@@ -30,25 +30,18 @@ int wpa_debug_timestamp = 0;
|
|
|
#define ANDROID_LOG_NAME "wpa_supplicant"
|
|
|
#endif
|
|
|
|
|
|
-void android_printf(int level, char *format, ...)
|
|
|
+static int wpa_to_android_level(int level)
|
|
|
{
|
|
|
- if (level >= wpa_debug_level) {
|
|
|
- va_list ap;
|
|
|
- if (level == MSG_ERROR)
|
|
|
- level = ANDROID_LOG_ERROR;
|
|
|
- else if (level == MSG_WARNING)
|
|
|
- level = ANDROID_LOG_WARN;
|
|
|
- else if (level == MSG_INFO)
|
|
|
- level = ANDROID_LOG_INFO;
|
|
|
- else
|
|
|
- level = ANDROID_LOG_DEBUG;
|
|
|
- va_start(ap, format);
|
|
|
- __android_log_vprint(level, ANDROID_LOG_NAME, format, ap);
|
|
|
- va_end(ap);
|
|
|
- }
|
|
|
+ if (level == MSG_ERROR)
|
|
|
+ return ANDROID_LOG_ERROR;
|
|
|
+ if (level == MSG_WARNING)
|
|
|
+ return ANDROID_LOG_WARN;
|
|
|
+ if (level == MSG_INFO)
|
|
|
+ return ANDROID_LOG_INFO;
|
|
|
+ return ANDROID_LOG_DEBUG;
|
|
|
}
|
|
|
|
|
|
-#else
|
|
|
+#endif
|
|
|
|
|
|
#ifndef CONFIG_NO_STDOUT_DEBUG
|
|
|
|
|
@@ -59,6 +52,7 @@ static FILE *out_file = NULL;
|
|
|
|
|
|
void wpa_debug_print_timestamp(void)
|
|
|
{
|
|
|
+#ifndef CONFIG_ANDROID_LOG
|
|
|
struct os_time tv;
|
|
|
|
|
|
if (!wpa_debug_timestamp)
|
|
@@ -72,6 +66,7 @@ void wpa_debug_print_timestamp(void)
|
|
|
} else
|
|
|
#endif
|
|
|
printf("%ld.%06u: ", (long) tv.sec, (unsigned int) tv.usec);
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
|
|
@@ -129,6 +124,10 @@ void wpa_printf(int level, const char *fmt, ...)
|
|
|
|
|
|
va_start(ap, fmt);
|
|
|
if (level >= wpa_debug_level) {
|
|
|
+#ifdef CONFIG_ANDROID_LOG
|
|
|
+ __android_log_vprint(wpa_to_android_level(level),
|
|
|
+ ANDROID_LOG_NAME, fmt, ap);
|
|
|
+#else
|
|
|
#ifdef CONFIG_DEBUG_SYSLOG
|
|
|
if (wpa_debug_syslog) {
|
|
|
vsyslog(syslog_priority(level), fmt, ap);
|
|
@@ -149,6 +148,7 @@ void wpa_printf(int level, const char *fmt, ...)
|
|
|
#ifdef CONFIG_DEBUG_SYSLOG
|
|
|
}
|
|
|
#endif
|
|
|
+#endif
|
|
|
}
|
|
|
va_end(ap);
|
|
|
}
|
|
@@ -160,6 +160,44 @@ static void _wpa_hexdump(int level, const char *title, const u8 *buf,
|
|
|
size_t i;
|
|
|
if (level < wpa_debug_level)
|
|
|
return;
|
|
|
+#ifdef CONFIG_ANDROID_LOG
|
|
|
+ {
|
|
|
+ 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]";
|
|
|
+ }
|
|
|
+
|
|
|
+ __android_log_print(wpa_to_android_level(level),
|
|
|
+ ANDROID_LOG_NAME,
|
|
|
+ "%s - hexdump(len=%lu):%s%s",
|
|
|
+ title, (long unsigned int) len, display,
|
|
|
+ len > slen ? " ..." : "");
|
|
|
+ os_free(strbuf);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+#else
|
|
|
#ifdef CONFIG_DEBUG_SYSLOG
|
|
|
if (wpa_debug_syslog) {
|
|
|
const char *display;
|
|
@@ -221,6 +259,7 @@ static void _wpa_hexdump(int level, const char *title, const u8 *buf,
|
|
|
#ifdef CONFIG_DEBUG_FILE
|
|
|
}
|
|
|
#endif
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
void wpa_hexdump(int level, const char *title, const u8 *buf, size_t len)
|
|
@@ -244,6 +283,9 @@ static void _wpa_hexdump_ascii(int level, const char *title, const u8 *buf,
|
|
|
|
|
|
if (level < wpa_debug_level)
|
|
|
return;
|
|
|
+#ifdef CONFIG_ANDROID_LOG
|
|
|
+ _wpa_hexdump(level, title, buf, len, show);
|
|
|
+#else
|
|
|
wpa_debug_print_timestamp();
|
|
|
#ifdef CONFIG_DEBUG_FILE
|
|
|
if (out_file) {
|
|
@@ -317,6 +359,7 @@ static void _wpa_hexdump_ascii(int level, const char *title, const u8 *buf,
|
|
|
#ifdef CONFIG_DEBUG_FILE
|
|
|
}
|
|
|
#endif
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
|
|
@@ -398,7 +441,6 @@ void wpa_debug_close_file(void)
|
|
|
|
|
|
#endif
|
|
|
|
|
|
-#endif
|
|
|
|
|
|
#ifndef CONFIG_NO_WPA_MSG
|
|
|
static wpa_msg_cb_func wpa_msg_cb = NULL;
|