From owner-svn-src-head@FreeBSD.ORG Mon Mar 2 02:26:53 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A40C810656C7; Mon, 2 Mar 2009 02:26:53 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 916208FC13; Mon, 2 Mar 2009 02:26:53 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n222QriI061857; Mon, 2 Mar 2009 02:26:53 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n222QrYe061851; Mon, 2 Mar 2009 02:26:53 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200903020226.n222QrYe061851@svn.freebsd.org> From: Sam Leffler Date: Mon, 2 Mar 2009 02:26:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189262 - in head/contrib/wpa: hostapd src/utils wpa_supplicant X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Mar 2009 02:26:54 -0000 Author: sam Date: Mon Mar 2 02:26:53 2009 New Revision: 189262 URL: http://svn.freebsd.org/changeset/base/189262 Log: bring in local changes for: CONFIG_DEBUG_SYSLOG CONFIG_TERMINATE_ONLASTIF EAP_SERVER Modified: head/contrib/wpa/hostapd/hostapd.c head/contrib/wpa/src/utils/wpa_debug.c head/contrib/wpa/wpa_supplicant/events.c head/contrib/wpa/wpa_supplicant/main.c head/contrib/wpa/wpa_supplicant/wpa_supplicant.c head/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h Modified: head/contrib/wpa/hostapd/hostapd.c ============================================================================== --- head/contrib/wpa/hostapd/hostapd.c Mon Mar 2 02:23:47 2009 (r189261) +++ head/contrib/wpa/hostapd/hostapd.c Mon Mar 2 02:26:53 2009 (r189262) @@ -1910,10 +1910,12 @@ int main(int argc, char *argv[]) if (optind == argc) usage(); +#ifdef EAP_SERVER if (eap_server_register_methods()) { wpa_printf(MSG_ERROR, "Failed to register EAP methods"); return -1; } +#endif /* EAP_SERVER */ interfaces.count = argc - optind; @@ -2019,7 +2021,9 @@ int main(int argc, char *argv[]) closelog(); #endif /* CONFIG_NATIVE_WINDOWS */ +#ifdef EAP_SERVER eap_server_unregister_methods(); +#endif /* EAP_SERVER */ os_daemonize_terminate(pid_file); Modified: head/contrib/wpa/src/utils/wpa_debug.c ============================================================================== --- head/contrib/wpa/src/utils/wpa_debug.c Mon Mar 2 02:23:47 2009 (r189261) +++ head/contrib/wpa/src/utils/wpa_debug.c Mon Mar 2 02:26:53 2009 (r189262) @@ -16,6 +16,10 @@ #include "common.h" +#ifdef CONFIG_DEBUG_SYSLOG +#include +#endif /* CONFIG_DEBUG_SYSLOG */ + #ifdef CONFIG_DEBUG_FILE static FILE *out_file = NULL; @@ -23,6 +27,7 @@ static FILE *out_file = NULL; int wpa_debug_level = MSG_INFO; int wpa_debug_show_keys = 0; int wpa_debug_timestamp = 0; +int wpa_debug_syslog = 0; #ifndef CONFIG_NO_STDOUT_DEBUG @@ -44,6 +49,40 @@ void wpa_debug_print_timestamp(void) 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 @@ -62,6 +101,11 @@ void wpa_printf(int level, char *fmt, .. 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) { @@ -74,6 +118,9 @@ void wpa_printf(int level, char *fmt, .. #ifdef CONFIG_DEBUG_FILE } #endif /* CONFIG_DEBUG_FILE */ +#ifdef CONFIG_DEBUG_SYSLOG + } +#endif /* CONFIG_DEBUG_SYSLOG */ } va_end(ap); } Modified: head/contrib/wpa/wpa_supplicant/events.c ============================================================================== --- head/contrib/wpa/wpa_supplicant/events.c Mon Mar 2 02:23:47 2009 (r189261) +++ head/contrib/wpa/wpa_supplicant/events.c Mon Mar 2 02:26:53 2009 (r189262) @@ -1011,6 +1011,18 @@ wpa_supplicant_event_michael_mic_failure } +#ifdef CONFIG_TERMINATE_ONLASTIF +static int any_interfaces(struct wpa_supplicant *head) +{ + struct wpa_supplicant *wpa_s; + + for (wpa_s = head; wpa_s != NULL; wpa_s = wpa_s->next) + if (!wpa_s->interface_removed) + return 1; + return 0; +} +#endif /* CONFIG_TERMINATE_ONLASTIF */ + static void wpa_supplicant_event_interface_status(struct wpa_supplicant *wpa_s, union wpa_event_data *data) @@ -1035,6 +1047,11 @@ wpa_supplicant_event_interface_status(st wpa_supplicant_mark_disassoc(wpa_s); l2_packet_deinit(wpa_s->l2); wpa_s->l2 = NULL; +#ifdef CONFIG_TERMINATE_ONLASTIF + /* check if last interface */ + if (!any_interfaces(wpa_s->global->ifaces)) + eloop_terminate(); +#endif /* CONFIG_TERMINATE_ONLASTIF */ break; } } Modified: head/contrib/wpa/wpa_supplicant/main.c ============================================================================== --- head/contrib/wpa/wpa_supplicant/main.c Mon Mar 2 02:23:47 2009 (r189261) +++ head/contrib/wpa/wpa_supplicant/main.c Mon Mar 2 02:26:53 2009 (r189262) @@ -26,11 +26,23 @@ static void usage(void) int i; printf("%s\n\n%s\n" "usage:\n" - " wpa_supplicant [-BddhKLqqtuvW] [-P] " + " wpa_supplicant [-BddhKLqq" +#ifdef CONFIG_DEBUG_SYSLOG + "s" +#endif /* CONFIG_DEBUG_SYSLOG */ + "t" +#ifdef CONFIG_CTRL_IFACE_DBUS + "u" +#endif /* CONFIG_CTRL_IFACE_DBUS */ + "vW] [-P] " "[-g] \\\n" " -i -c [-C] [-D] " "[-p] \\\n" - " [-b] [-f] \\\n" + " [-b]" +#ifdef CONFIG_DEBUG_FILE + " [-f]" +#endif /* CONFIG_DEBUG_FILE */ + " \\\n" " [-N -i -c [-C] " "[-D] \\\n" " [-p] [-b] ...]\n" @@ -58,6 +70,9 @@ static void usage(void) #endif /* CONFIG_DEBUG_FILE */ " -g = global ctrl_interface\n" " -K = include keys (passwords, etc.) in debug output\n" +#ifdef CONFIG_DEBUG_SYSLOG + " -s = log output to syslog instead of stdout\n" +#endif /* CONFIG_DEBUG_SYSLOG */ " -t = include timestamp in debug messages\n" " -h = show this help text\n" " -L = show license (GPL and BSD)\n"); @@ -72,7 +87,9 @@ static void usage(void) " -N = start describing new interface\n"); printf("example:\n" - " wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf\n"); + " wpa_supplicant -D%s -iwlan0 -c/etc/wpa_supplicant.conf\n", + wpa_supplicant_drivers[i] ? + wpa_supplicant_drivers[i]->name : "wext"); #endif /* CONFIG_NO_STDOUT_DEBUG */ } @@ -133,7 +150,7 @@ int main(int argc, char *argv[]) wpa_supplicant_fd_workaround(); for (;;) { - c = getopt(argc, argv, "b:Bc:C:D:df:g:hi:KLNp:P:qtuvW"); + c = getopt(argc, argv, "b:Bc:C:D:df:g:hi:KLNp:P:qstuvW"); if (c < 0) break; switch (c) { @@ -194,6 +211,11 @@ int main(int argc, char *argv[]) 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; Modified: head/contrib/wpa/wpa_supplicant/wpa_supplicant.c ============================================================================== --- head/contrib/wpa/wpa_supplicant/wpa_supplicant.c Mon Mar 2 02:23:47 2009 (r189261) +++ head/contrib/wpa/wpa_supplicant/wpa_supplicant.c Mon Mar 2 02:26:53 2009 (r189262) @@ -2016,6 +2016,8 @@ struct wpa_global * wpa_supplicant_init( 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) { @@ -2166,5 +2168,6 @@ void wpa_supplicant_deinit(struct wpa_gl os_free(global->params.ctrl_interface); os_free(global); + wpa_debug_close_syslog(); wpa_debug_close_file(); } Modified: head/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h ============================================================================== --- head/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h Mon Mar 2 02:23:47 2009 (r189261) +++ head/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h Mon Mar 2 02:26:53 2009 (r189262) @@ -156,6 +156,11 @@ struct wpa_params { * 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; }; /**