hostapd: Add support for logging to syslog (#6174)
Even if enabled in hostapd.conf the 2.6 release only logs some of its messages to syslog. All parts of the code using the wpa_printf function send output to stdout. This commit adds a patch (taken from hostap.git) to the package to fully support logging to syslog using the -s commandline argument. The runit run file is modified accordingly.
This commit is contained in:
parent
ab9c3357e9
commit
3b644398d5
|
@ -94,3 +94,6 @@ CONFIG_IEEE80211AC=y
|
|||
CONFIG_LIBNL32=y
|
||||
|
||||
CONFIG_ACS=y
|
||||
|
||||
# Support debug logging to syslog
|
||||
CONFIG_DEBUG_SYSLOG=y
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#!/bin/sh
|
||||
exec hostapd -d /etc/hostapd/hostapd.conf 2>&1
|
||||
exec hostapd -s /etc/hostapd/hostapd.conf 2>&1
|
||||
|
|
|
@ -0,0 +1,160 @@
|
|||
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(-)
|
||||
|
||||
diff --git hostapd/Android.mk hostapd/Android.mk
|
||||
index 9a14be4b9..ec2d55a9f 100644
|
||||
--- hostapd/Android.mk
|
||||
+++ 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
|
||||
diff --git hostapd/Makefile hostapd/Makefile
|
||||
index 52c72dc45..d9bb72a0a 100644
|
||||
--- hostapd/Makefile
|
||||
+++ 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
|
||||
diff --git hostapd/defconfig hostapd/defconfig
|
||||
index e25ec320f..bf6e64663 100644
|
||||
--- hostapd/defconfig
|
||||
+++ 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
|
||||
diff --git hostapd/main.c hostapd/main.c
|
||||
index 6911232eb..593267c96 100644
|
||||
--- hostapd/main.c
|
||||
+++ hostapd/main.c
|
||||
@@ -108,6 +108,10 @@ static void hostapd_logger_cb(void *ctx, const u8 *addr, unsigned int module,
|
||||
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();
|
||||
diff --git src/utils/wpa_debug.c src/utils/wpa_debug.c
|
||||
index f7acf6b9f..62758d864 100644
|
||||
--- src/utils/wpa_debug.c
|
||||
+++ 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
|
||||
diff --git src/utils/wpa_debug.h src/utils/wpa_debug.h
|
||||
index 17d8f9638..1fe0b7db7 100644
|
||||
--- src/utils/wpa_debug.h
|
||||
+++ 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. */
|
||||
--
|
||||
2.12.2
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'hostapd'
|
||||
pkgname=hostapd
|
||||
version=2.6
|
||||
revision=2
|
||||
revision=3
|
||||
build_wrksrc=${pkgname}
|
||||
conf_files="/etc/hostapd/hostapd.conf"
|
||||
hostmakedepends="pkg-config"
|
||||
|
|
Loading…
Reference in New Issue