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 <syslog.h>
+#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<pid file>] "
+              "  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<pid file>] "
               "[-g<global ctrl>] \\\n"
               "        -i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] "
               "[-p<driver_param>] \\\n"
-              "        [-b<br_ifname>] [-f<debug file>] \\\n"
+              "        [-b<br_ifname>]"
+#ifdef CONFIG_DEBUG_FILE
+              " [-f<debug file>]"
+#endif /* CONFIG_DEBUG_FILE */
+              " \\\n"
               "        [-N -i<ifname> -c<conf> [-C<ctrl>] "
               "[-D<driver>] \\\n"
               "        [-p<driver_param>] [-b<br_ifname>] ...]\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;
 };
 
 /**
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to