From owner-p4-projects@FreeBSD.ORG Thu Mar 13 23:08:14 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B09301065674; Thu, 13 Mar 2008 23:08:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 553691065670 for ; Thu, 13 Mar 2008 23:08:14 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4104F8FC15 for ; Thu, 13 Mar 2008 23:08:14 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m2DN8ECC033825 for ; Thu, 13 Mar 2008 23:08:14 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m2DN8EHK033823 for perforce@freebsd.org; Thu, 13 Mar 2008 23:08:14 GMT (envelope-from sam@freebsd.org) Date: Thu, 13 Mar 2008 23:08:14 GMT Message-Id: <200803132308.m2DN8EHK033823@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 137658 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Mar 2008 23:08:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=137658 Change 137658 by sam@sam_ebb on 2008/03/13 23:07:52 syslog support under -s cmd line option and CONFIG_DEBUG_SYSLOG compile-time option Affected files ... .. //depot/projects/vap/contrib/wpa_supplicant/Makefile#4 edit .. //depot/projects/vap/contrib/wpa_supplicant/common.c#4 edit .. //depot/projects/vap/contrib/wpa_supplicant/defconfig#4 edit .. //depot/projects/vap/contrib/wpa_supplicant/main.c#4 edit .. //depot/projects/vap/contrib/wpa_supplicant/wpa_supplicant.c#4 edit .. //depot/projects/vap/contrib/wpa_supplicant/wpa_supplicant_i.h#4 edit Differences ... ==== //depot/projects/vap/contrib/wpa_supplicant/Makefile#4 (text+ko) ==== @@ -745,6 +745,10 @@ CFLAGS += -DCONFIG_DEBUG_FILE endif +ifdef CONFIG_DEBUG_SYSLOG +CFLAGS += -DCONFIG_DEBUG_SYSLOG +endif + OBJS += wpa_supplicant.o events.o OBJS_t := $(OBJS) eapol_test.o radius.o radius_client.o OBJS_t2 := $(OBJS) preauth_test.o ==== //depot/projects/vap/contrib/wpa_supplicant/common.c#4 (text+ko) ==== @@ -16,13 +16,18 @@ #include "common.h" +#ifdef CONFIG_DEBUG_SYSLOG +#include +#endif /* CONFIG_DEBUG_SYSLOG */ + #ifdef CONFIG_DEBUG_FILE static FILE *out_file = NULL; #endif /* CONFIG_DEBUG_FILE */ int wpa_debug_level = MSG_INFO; int wpa_debug_show_keys = 0; int wpa_debug_timestamp = 0; +int wpa_debug_syslog = 0; static int hex2num(char c) @@ -161,7 +166,41 @@ printf("%ld.%06u: ", (long) tv.sec, (unsigned int) tv.usec); } +void wpa_debug_open_syslog(void) +{ +#ifdef CONFIG_DEBUG_SYSLOG + openlog("wpa_supplicant", LOG_PID | LOG_NDELAY, LOG_DAEMON); + wpa_debug_syslog++; +#endif +} + +void wpa_debug_close_syslog(void) +{ +#ifdef CONFIG_DEBUG_SYSLOG + if (wpa_debug_syslog) + closelog(); +#endif +} +#ifdef CONFIG_DEBUG_SYSLOG +static int syslog_priority(int level) +{ + switch (level) { + case MSG_MSGDUMP: + case MSG_DEBUG: + return LOG_DEBUG; + case MSG_INFO: + return LOG_NOTICE; + case MSG_WARNING: + return LOG_WARNING; + case MSG_ERROR: + return LOG_ERR; + } + return LOG_INFO; +} +#endif /* CONFIG_DEBUG_SYSLOG */ + + /** * wpa_printf - conditional printf * @level: priority level (MSG_*) of the message @@ -179,6 +218,11 @@ va_start(ap, fmt); if (level >= wpa_debug_level) { +#ifdef CONFIG_DEBUG_SYSLOG + if (wpa_debug_syslog) { + vsyslog(syslog_priority(level), fmt, ap); + } else { +#endif /* CONFIG_DEBUG_SYSLOG */ wpa_debug_print_timestamp(); #ifdef CONFIG_DEBUG_FILE if (out_file) { @@ -191,6 +235,9 @@ #ifdef CONFIG_DEBUG_FILE } #endif /* CONFIG_DEBUG_FILE */ +#ifdef CONFIG_DEBUG_SYSLOG + } +#endif /* CONFIG_DEBUG_SYSLOG */ } va_end(ap); } ==== //depot/projects/vap/contrib/wpa_supplicant/defconfig#4 (text+ko) ==== @@ -321,3 +321,6 @@ # Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt) #CONFIG_DEBUG_FILE=y + +# Add support for logging via syslog +#CONFIG_DEBUG_SYSLOG=y ==== //depot/projects/vap/contrib/wpa_supplicant/main.c#4 (text) ==== @@ -39,7 +39,7 @@ int i; printf("%s\n\n%s\n" "usage:\n" - " wpa_supplicant [-BddhKLqqtuvwW] [-P] " + " wpa_supplicant [-BddhKLqqstuvwW] [-P] " "[-g] \\\n" " -i -c [-C] [-D] " "[-p] \\\n" @@ -77,6 +77,9 @@ printf(" -p = driver parameters\n" " -P = PID file\n" " -q = decrease debugging verbosity (-qq even less)\n" +#ifdef CONFIG_DEBUG_SYSLOG + " -s = log output to syslog instead of stdout\n" +#endif /* CONFIG_DEBUG_SYSLOG */ #ifdef CONFIG_CTRL_IFACE_DBUS " -u = enable DBus control interface\n" #endif /* CONFIG_CTRL_IFACE_DBUS */ @@ -147,7 +150,7 @@ wpa_supplicant_fd_workaround(); for (;;) { - c = getopt(argc, argv, "b:Bc:C:D:df:g:hi:KLNp:P:qtuvwW"); + c = getopt(argc, argv, "b:Bc:C:D:df:g:hi:KLNp:P:qstuvwW"); if (c < 0) break; switch (c) { @@ -208,6 +211,11 @@ case 'q': params.wpa_debug_level++; break; +#ifdef CONFIG_DEBUG_SYSLOG + case 's': + params.wpa_debug_syslog++; + break; +#endif /* CONFIG_DEBUG_SYSLOG */ case 't': params.wpa_debug_timestamp++; break; ==== //depot/projects/vap/contrib/wpa_supplicant/wpa_supplicant.c#4 (text+ko) ==== @@ -2488,6 +2488,8 @@ return NULL; wpa_debug_open_file(params->wpa_debug_file_path); + if (params->wpa_debug_syslog) + wpa_debug_open_syslog(); ret = eap_peer_register_methods(); if (ret) { @@ -2612,5 +2614,6 @@ os_free(global->params.ctrl_interface); os_free(global); + wpa_debug_close_syslog(); wpa_debug_close_file(); } ==== //depot/projects/vap/contrib/wpa_supplicant/wpa_supplicant_i.h#4 (text+ko) ==== @@ -161,6 +161,11 @@ * wpa_debug_file_path - Path of debug file or %NULL to use stdout */ const char *wpa_debug_file_path; + + /** + * wpa_debug_syslog - Enable log output through syslog + */ + const char *wpa_debug_syslog; }; /**