Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/wpa/dist/wpa_supplicant wpa_supplicant: Matchin...



details:   https://anonhg.NetBSD.org/src/rev/e10eba452631
branches:  trunk
changeset: 936214:e10eba452631
user:      roy <roy%NetBSD.org@localhost>
date:      Tue Jul 21 13:18:58 2020 +0000

description:
wpa_supplicant: Matching unspecified interfaces should not log driver fails

If there is no matching interface given, but interface matching is enabled
then all interfaces on the system will try to be initialized.

Non wireless interfaces will fail and the loopback device will be one
of these, so just log a diagnostic rather than an error.

diffstat:

 external/bsd/wpa/dist/wpa_supplicant/events.c           |   2 -
 external/bsd/wpa/dist/wpa_supplicant/wpa_supplicant.c   |  20 ++++++++++++++--
 external/bsd/wpa/dist/wpa_supplicant/wpa_supplicant_i.h |  11 +++++++++
 3 files changed, 28 insertions(+), 5 deletions(-)

diffs (91 lines):

diff -r 192a39dadbdc -r e10eba452631 external/bsd/wpa/dist/wpa_supplicant/events.c
--- a/external/bsd/wpa/dist/wpa_supplicant/events.c     Tue Jul 21 12:19:52 2020 +0000
+++ b/external/bsd/wpa/dist/wpa_supplicant/events.c     Tue Jul 21 13:18:58 2020 +0000
@@ -4825,8 +4825,6 @@
                        return;
                wpa_s = wpa_supplicant_add_iface(ctx, wpa_i, NULL);
                os_free(wpa_i);
-               if (wpa_s)
-                       wpa_s->matched = 1;
        }
 #endif /* CONFIG_MATCH_IFACE */
 
diff -r 192a39dadbdc -r e10eba452631 external/bsd/wpa/dist/wpa_supplicant/wpa_supplicant.c
--- a/external/bsd/wpa/dist/wpa_supplicant/wpa_supplicant.c     Tue Jul 21 12:19:52 2020 +0000
+++ b/external/bsd/wpa/dist/wpa_supplicant/wpa_supplicant.c     Tue Jul 21 13:18:58 2020 +0000
@@ -5298,6 +5298,8 @@
        wpa_s->drv_priv = wpa_drv_init(wpa_s, wpa_s->ifname);
        if (wpa_s->drv_priv == NULL) {
                const char *pos;
+               int level;
+
                pos = driver ? os_strchr(driver, ',') : NULL;
                if (pos) {
                        wpa_dbg(wpa_s, MSG_DEBUG, "Failed to initialize "
@@ -5305,7 +5307,14 @@
                        driver = pos + 1;
                        goto next_driver;
                }
-               wpa_msg(wpa_s, MSG_ERROR, "Failed to initialize driver "
+
+#ifdef CONFIG_MATCH_IFACE
+               if (wpa_s->matched == WPA_IFACE_MATCHEDNULL)
+                       level = MSG_DEBUG;
+               else
+#endif
+                       level = MSG_ERROR;
+               wpa_msg(wpa_s, level, "Failed to initialize driver "
                        "interface");
                return -1;
        }
@@ -5451,6 +5460,9 @@
                return -1;
        }
        os_strlcpy(wpa_s->ifname, iface->ifname, sizeof(wpa_s->ifname));
+#ifdef CONFIG_MATCH_IFACE
+       wpa_s->matched = iface->matched;
+#endif
 
        if (iface->bridge_ifname) {
                if (os_strlen(iface->bridge_ifname) >=
@@ -5829,6 +5841,10 @@
                        if (!iface)
                                return NULL;
                        *iface = *miface;
+                       if (!miface->ifname)
+                               iface->matched = WPA_IFACE_MATCHEDNULL;
+                       else
+                               iface->matched = WPA_IFACE_MATCHED;
                        iface->ifname = ifname;
                        return iface;
                }
@@ -5863,8 +5879,6 @@
                if (iface) {
                        wpa_s = wpa_supplicant_add_iface(global, iface, NULL);
                        os_free(iface);
-                       if (wpa_s)
-                               wpa_s->matched = 1;
                }
        }
 
diff -r 192a39dadbdc -r e10eba452631 external/bsd/wpa/dist/wpa_supplicant/wpa_supplicant_i.h
--- a/external/bsd/wpa/dist/wpa_supplicant/wpa_supplicant_i.h   Tue Jul 21 12:19:52 2020 +0000
+++ b/external/bsd/wpa/dist/wpa_supplicant/wpa_supplicant_i.h   Tue Jul 21 13:18:58 2020 +0000
@@ -118,6 +118,17 @@
         * interface that is not a network interface.
         */
        int p2p_mgmt;
+
+#ifdef CONFIG_MATCH_IFACE
+       /**
+        * matched - Interface was matched rather than specified
+        *
+        */
+       int matched;
+#define WPA_IFACE_NOTMATCHED   0
+#define WPA_IFACE_MATCHEDNULL  1
+#define WPA_IFACE_MATCHED      2
+#endif /* CONFIG_MATCH_IFACE */
 };
 
 /**



Home | Main Index | Thread Index | Old Index