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/47f7d2151ec2
branches:  trunk
changeset: 1012085:47f7d2151ec2
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 c134fa8d9da5 -r 47f7d2151ec2 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 c134fa8d9da5 -r 47f7d2151ec2 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 c134fa8d9da5 -r 47f7d2151ec2 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