|
|
@@ -0,0 +1,145 @@
|
|
|
+From cc3dae85bd694506cdea66ae532d452fb8716297 Mon Sep 17 00:00:00 2001
|
|
|
+From: Wojciech Dubowik <[email protected]>
|
|
|
+Date: Mon, 23 Jan 2017 13:55:04 +0100
|
|
|
+Subject: [PATCH] hostapd: Add possibility to send debug messages to syslog
|
|
|
+
|
|
|
+We can only send module specific messages to syslog and not debug
|
|
|
+messages printed with wpa_printf. Add an extra command line parameter
|
|
|
+'-s' to allow it. The feature is enabled with compile flag
|
|
|
+CONFIG_DEBUG_SYSLOG as for wpa_supplicant and behaves in the same manner
|
|
|
+as the wpa_supplicant -s command line argument.
|
|
|
+
|
|
|
+Signed-off-by: Wojciech Dubowik <[email protected]>
|
|
|
+---
|
|
|
+ hostapd/Android.mk | 4 ++++
|
|
|
+ hostapd/Makefile | 4 ++++
|
|
|
+ hostapd/defconfig | 3 +++
|
|
|
+ hostapd/main.c | 19 ++++++++++++++++++-
|
|
|
+ src/utils/wpa_debug.c | 2 +-
|
|
|
+ src/utils/wpa_debug.h | 3 +++
|
|
|
+ 6 files changed, 33 insertions(+), 2 deletions(-)
|
|
|
+
|
|
|
+--- a/hostapd/Android.mk
|
|
|
++++ b/hostapd/Android.mk
|
|
|
+@@ -952,6 +952,10 @@ ifdef CONFIG_NO_STDOUT_DEBUG
|
|
|
+ L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
|
|
|
+ endif
|
|
|
+
|
|
|
++ifdef CONFIG_DEBUG_SYSLOG
|
|
|
++L_CFLAGS += -DCONFIG_DEBUG_SYSLOG
|
|
|
++endif
|
|
|
++
|
|
|
+ ifdef CONFIG_DEBUG_LINUX_TRACING
|
|
|
+ L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
|
|
|
+ endif
|
|
|
+--- a/hostapd/Makefile
|
|
|
++++ b/hostapd/Makefile
|
|
|
+@@ -997,6 +997,10 @@ ifdef CONFIG_NO_STDOUT_DEBUG
|
|
|
+ CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
|
|
|
+ endif
|
|
|
+
|
|
|
++ifdef CONFIG_DEBUG_SYSLOG
|
|
|
++CFLAGS += -DCONFIG_DEBUG_SYSLOG
|
|
|
++endif
|
|
|
++
|
|
|
+ ifdef CONFIG_DEBUG_LINUX_TRACING
|
|
|
+ CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
|
|
|
+ endif
|
|
|
+--- a/hostapd/defconfig
|
|
|
++++ b/hostapd/defconfig
|
|
|
+@@ -166,6 +166,9 @@ CONFIG_IPV6=y
|
|
|
+ # Disabled by default.
|
|
|
+ #CONFIG_DEBUG_FILE=y
|
|
|
+
|
|
|
++# Send debug messages to syslog instead of stdout
|
|
|
++#CONFIG_DEBUG_SYSLOG=y
|
|
|
++
|
|
|
+ # Add support for sending all debug messages (regardless of debug verbosity)
|
|
|
+ # to the Linux kernel tracing facility. This helps debug the entire stack by
|
|
|
+ # making it easy to record everything happening from the driver up into the
|
|
|
+--- a/hostapd/main.c
|
|
|
++++ b/hostapd/main.c
|
|
|
+@@ -108,6 +108,10 @@ static void hostapd_logger_cb(void *ctx,
|
|
|
+ module_str ? module_str : "",
|
|
|
+ module_str ? ": " : "", txt);
|
|
|
+
|
|
|
++#ifdef CONFIG_DEBUG_SYSLOG
|
|
|
++ if (wpa_debug_syslog)
|
|
|
++ conf_stdout = 0;
|
|
|
++#endif /* CONFIG_DEBUG_SYSLOG */
|
|
|
+ if ((conf_stdout & module) && level >= conf_stdout_level) {
|
|
|
+ wpa_debug_print_timestamp();
|
|
|
+ wpa_printf(MSG_INFO, "%s", format);
|
|
|
+@@ -484,6 +488,9 @@ static void usage(void)
|
|
|
+ " (records all messages regardless of debug verbosity)\n"
|
|
|
+ #endif /* CONFIG_DEBUG_LINUX_TRACING */
|
|
|
+ " -i list of interface names to use\n"
|
|
|
++#ifdef CONFIG_DEBUG_SYSLOG
|
|
|
++ " -s log output to syslog instead of stdout\n"
|
|
|
++#endif /* CONFIG_DEBUG_SYSLOG */
|
|
|
+ " -S start all the interfaces synchronously\n"
|
|
|
+ " -t include timestamps in some debug messages\n"
|
|
|
+ " -v show hostapd version\n");
|
|
|
+@@ -661,7 +668,7 @@ int main(int argc, char *argv[])
|
|
|
+ dl_list_init(&interfaces.global_ctrl_dst);
|
|
|
+
|
|
|
+ for (;;) {
|
|
|
+- c = getopt(argc, argv, "b:Bde:f:hi:KP:STtu:vg:G:");
|
|
|
++ c = getopt(argc, argv, "b:Bde:f:hi:KP:sSTtu:vg:G:");
|
|
|
+ if (c < 0)
|
|
|
+ break;
|
|
|
+ switch (c) {
|
|
|
+@@ -718,6 +725,11 @@ int main(int argc, char *argv[])
|
|
|
+ bss_config = tmp_bss;
|
|
|
+ bss_config[num_bss_configs++] = optarg;
|
|
|
+ break;
|
|
|
++#ifdef CONFIG_DEBUG_SYSLOG
|
|
|
++ case 's':
|
|
|
++ wpa_debug_syslog = 1;
|
|
|
++ break;
|
|
|
++#endif /* CONFIG_DEBUG_SYSLOG */
|
|
|
+ case 'S':
|
|
|
+ start_ifaces_in_sync = 1;
|
|
|
+ break;
|
|
|
+@@ -746,6 +758,10 @@ int main(int argc, char *argv[])
|
|
|
+ wpa_debug_open_file(log_file);
|
|
|
+ else
|
|
|
+ wpa_debug_setup_stdout();
|
|
|
++#ifdef CONFIG_DEBUG_SYSLOG
|
|
|
++ if (wpa_debug_syslog)
|
|
|
++ wpa_debug_open_syslog();
|
|
|
++#endif /* CONFIG_DEBUG_SYSLOG */
|
|
|
+ #ifdef CONFIG_DEBUG_LINUX_TRACING
|
|
|
+ if (enable_trace_dbg) {
|
|
|
+ int tret = wpa_debug_open_linux_tracing();
|
|
|
+@@ -882,6 +898,7 @@ int main(int argc, char *argv[])
|
|
|
+ hostapd_global_deinit(pid_file, interfaces.eloop_initialized);
|
|
|
+ os_free(pid_file);
|
|
|
+
|
|
|
++ wpa_debug_close_syslog();
|
|
|
+ if (log_file)
|
|
|
+ wpa_debug_close_file();
|
|
|
+ wpa_debug_close_linux_tracing();
|
|
|
+--- a/src/utils/wpa_debug.c
|
|
|
++++ b/src/utils/wpa_debug.c
|
|
|
+@@ -13,7 +13,7 @@
|
|
|
+ #ifdef CONFIG_DEBUG_SYSLOG
|
|
|
+ #include <syslog.h>
|
|
|
+
|
|
|
+-static int wpa_debug_syslog = 0;
|
|
|
++int wpa_debug_syslog = 0;
|
|
|
+ #endif /* CONFIG_DEBUG_SYSLOG */
|
|
|
+
|
|
|
+ #ifdef CONFIG_DEBUG_LINUX_TRACING
|
|
|
+--- a/src/utils/wpa_debug.h
|
|
|
++++ b/src/utils/wpa_debug.h
|
|
|
+@@ -14,6 +14,9 @@
|
|
|
+ extern int wpa_debug_level;
|
|
|
+ extern int wpa_debug_show_keys;
|
|
|
+ extern int wpa_debug_timestamp;
|
|
|
++#ifdef CONFIG_DEBUG_SYSLOG
|
|
|
++extern int wpa_debug_syslog;
|
|
|
++#endif /* CONFIG_DEBUG_SYSLOG */
|
|
|
+
|
|
|
+ /* Debugging function - conditional printf and hex dump. Driver wrappers can
|
|
|
+ * use these for debugging purposes. */
|