123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- From cc3dae85bd694506cdea66ae532d452fb8716297 Mon Sep 17 00:00:00 2001
- From: Wojciech Dubowik <Wojciech.Dubowik@neratec.com>
- 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 <Wojciech.Dubowik@neratec.com>
- ---
- 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. */
|