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>
This commit is contained in:
parent
0da355235e
commit
cc3dae85bd
6 changed files with 33 additions and 2 deletions
|
@ -952,6 +952,10 @@ ifdef CONFIG_NO_STDOUT_DEBUG
|
||||||
L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
|
L_CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_DEBUG_SYSLOG
|
||||||
|
L_CFLAGS += -DCONFIG_DEBUG_SYSLOG
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_DEBUG_LINUX_TRACING
|
ifdef CONFIG_DEBUG_LINUX_TRACING
|
||||||
L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
|
L_CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -997,6 +997,10 @@ ifdef CONFIG_NO_STDOUT_DEBUG
|
||||||
CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
|
CFLAGS += -DCONFIG_NO_STDOUT_DEBUG
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_DEBUG_SYSLOG
|
||||||
|
CFLAGS += -DCONFIG_DEBUG_SYSLOG
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_DEBUG_LINUX_TRACING
|
ifdef CONFIG_DEBUG_LINUX_TRACING
|
||||||
CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
|
CFLAGS += -DCONFIG_DEBUG_LINUX_TRACING
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -166,6 +166,9 @@ CONFIG_IPV6=y
|
||||||
# Disabled by default.
|
# Disabled by default.
|
||||||
#CONFIG_DEBUG_FILE=y
|
#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)
|
# Add support for sending all debug messages (regardless of debug verbosity)
|
||||||
# to the Linux kernel tracing facility. This helps debug the entire stack by
|
# 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
|
# making it easy to record everything happening from the driver up into the
|
||||||
|
|
|
@ -108,6 +108,10 @@ static void hostapd_logger_cb(void *ctx, const u8 *addr, unsigned int module,
|
||||||
module_str ? module_str : "",
|
module_str ? module_str : "",
|
||||||
module_str ? ": " : "", txt);
|
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) {
|
if ((conf_stdout & module) && level >= conf_stdout_level) {
|
||||||
wpa_debug_print_timestamp();
|
wpa_debug_print_timestamp();
|
||||||
wpa_printf(MSG_INFO, "%s", format);
|
wpa_printf(MSG_INFO, "%s", format);
|
||||||
|
@ -484,6 +488,9 @@ static void usage(void)
|
||||||
" (records all messages regardless of debug verbosity)\n"
|
" (records all messages regardless of debug verbosity)\n"
|
||||||
#endif /* CONFIG_DEBUG_LINUX_TRACING */
|
#endif /* CONFIG_DEBUG_LINUX_TRACING */
|
||||||
" -i list of interface names to use\n"
|
" -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"
|
" -S start all the interfaces synchronously\n"
|
||||||
" -t include timestamps in some debug messages\n"
|
" -t include timestamps in some debug messages\n"
|
||||||
" -v show hostapd version\n");
|
" -v show hostapd version\n");
|
||||||
|
@ -661,7 +668,7 @@ int main(int argc, char *argv[])
|
||||||
dl_list_init(&interfaces.global_ctrl_dst);
|
dl_list_init(&interfaces.global_ctrl_dst);
|
||||||
|
|
||||||
for (;;) {
|
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)
|
if (c < 0)
|
||||||
break;
|
break;
|
||||||
switch (c) {
|
switch (c) {
|
||||||
|
@ -718,6 +725,11 @@ int main(int argc, char *argv[])
|
||||||
bss_config = tmp_bss;
|
bss_config = tmp_bss;
|
||||||
bss_config[num_bss_configs++] = optarg;
|
bss_config[num_bss_configs++] = optarg;
|
||||||
break;
|
break;
|
||||||
|
#ifdef CONFIG_DEBUG_SYSLOG
|
||||||
|
case 's':
|
||||||
|
wpa_debug_syslog = 1;
|
||||||
|
break;
|
||||||
|
#endif /* CONFIG_DEBUG_SYSLOG */
|
||||||
case 'S':
|
case 'S':
|
||||||
start_ifaces_in_sync = 1;
|
start_ifaces_in_sync = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -746,6 +758,10 @@ int main(int argc, char *argv[])
|
||||||
wpa_debug_open_file(log_file);
|
wpa_debug_open_file(log_file);
|
||||||
else
|
else
|
||||||
wpa_debug_setup_stdout();
|
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
|
#ifdef CONFIG_DEBUG_LINUX_TRACING
|
||||||
if (enable_trace_dbg) {
|
if (enable_trace_dbg) {
|
||||||
int tret = wpa_debug_open_linux_tracing();
|
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);
|
hostapd_global_deinit(pid_file, interfaces.eloop_initialized);
|
||||||
os_free(pid_file);
|
os_free(pid_file);
|
||||||
|
|
||||||
|
wpa_debug_close_syslog();
|
||||||
if (log_file)
|
if (log_file)
|
||||||
wpa_debug_close_file();
|
wpa_debug_close_file();
|
||||||
wpa_debug_close_linux_tracing();
|
wpa_debug_close_linux_tracing();
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#ifdef CONFIG_DEBUG_SYSLOG
|
#ifdef CONFIG_DEBUG_SYSLOG
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
|
|
||||||
static int wpa_debug_syslog = 0;
|
int wpa_debug_syslog = 0;
|
||||||
#endif /* CONFIG_DEBUG_SYSLOG */
|
#endif /* CONFIG_DEBUG_SYSLOG */
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_LINUX_TRACING
|
#ifdef CONFIG_DEBUG_LINUX_TRACING
|
||||||
|
|
|
@ -14,6 +14,9 @@
|
||||||
extern int wpa_debug_level;
|
extern int wpa_debug_level;
|
||||||
extern int wpa_debug_show_keys;
|
extern int wpa_debug_show_keys;
|
||||||
extern int wpa_debug_timestamp;
|
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
|
/* Debugging function - conditional printf and hex dump. Driver wrappers can
|
||||||
* use these for debugging purposes. */
|
* use these for debugging purposes. */
|
||||||
|
|
Loading…
Reference in a new issue