]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
nl80211: Store externally managed bridge name in driver status
authorJouni Malinen <j@w1.fi>
Sun, 26 Oct 2014 09:20:01 +0000 (11:20 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 26 Oct 2014 09:27:31 +0000 (11:27 +0200)
This makes it easier to figure out from hostapd control interface
whether an interface had been added to a bridge externally at the time
hostapd interface was enabled or if the interface gets added during
hostapd operations.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/drivers/driver_nl80211.c

index 8c7508da9c404092493c3ab152927e5b900f9bd6..7fac1dee20d47bf221ed9c6b512381866dd2200a 100644 (file)
@@ -1375,11 +1375,20 @@ static void wpa_driver_nl80211_event_rtm_newlink(void *ctx,
                wpa_driver_nl80211_event_newlink(drv, ifname);
 
        if (ifi->ifi_family == AF_BRIDGE && brid) {
+               struct i802_bss *bss;
+
                /* device has been added to bridge */
                if_indextoname(brid, namebuf);
                wpa_printf(MSG_DEBUG, "nl80211: Add ifindex %u for bridge %s",
                           brid, namebuf);
                add_ifidx(drv, brid);
+
+               for (bss = drv->first_bss; bss; bss = bss->next) {
+                       if (os_strcmp(ifname, bss->ifname) == 0) {
+                               os_strlcpy(bss->brname, namebuf, IFNAMSIZ);
+                               break;
+                       }
+               }
        }
 }
 
@@ -10400,6 +10409,7 @@ static void *i802_init(struct hostapd_data *hapd,
                wpa_printf(MSG_DEBUG, "nl80211: Interface %s is in bridge %s",
                           params->ifname, brname);
                br_ifindex = if_nametoindex(brname);
+               os_strlcpy(bss->brname, brname, IFNAMSIZ);
        } else {
                brname[0] = '\0';
                br_ifindex = 0;