PERFORCE change 137658 for review

Sam Leffler sam at FreeBSD.org
Thu Mar 13 23:08:15 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=137658

Change 137658 by sam at 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 <syslog.h>
+#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<pid file>] "
+	       "  wpa_supplicant [-BddhKLqqstuvwW] [-P<pid file>] "
 	       "[-g<global ctrl>] \\\n"
 	       "        -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] "
 	       "[-p<driver_param>] \\\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;
 };
 
 /**


More information about the p4-projects mailing list