hostapd: update to 20120326
[openwrt/svn-archive/archive.git] / package / hostapd / patches / 310-multicall_bridge_fix.patch
diff --git a/package/hostapd/patches/310-multicall_bridge_fix.patch b/package/hostapd/patches/310-multicall_bridge_fix.patch
new file mode 100644 (file)
index 0000000..2ee198a
--- /dev/null
@@ -0,0 +1,45 @@
+--- a/src/drivers/driver_nl80211.c
++++ b/src/drivers/driver_nl80211.c
+@@ -886,6 +886,10 @@ static void wpa_driver_nl80211_event_rtm
+               return;
+       }
++      if (ifi->ifi_family == AF_BRIDGE &&
++          drv->nlmode != NL80211_IFTYPE_AP)
++              return;
++
+       wpa_printf(MSG_DEBUG, "RTM_NEWLINK: operstate=%d ifi_flags=0x%x "
+                  "(%s%s%s%s)",
+                  drv->operstate, ifi->ifi_flags,
+@@ -993,6 +997,10 @@ static void wpa_driver_nl80211_event_rtm
+       attrlen = len;
+       attr = (struct rtattr *) buf;
++      if (ifi->ifi_family == AF_BRIDGE &&
++          drv->nlmode != NL80211_IFTYPE_AP)
++              return;
++
+       rta_len = RTA_ALIGN(sizeof(struct rtattr));
+       while (RTA_OK(attr, attrlen)) {
+               if (attr->rta_type == IFLA_IFNAME) {
+@@ -2920,6 +2928,11 @@ static void * wpa_driver_nl80211_init(vo
+       drv->ap_scan_as_station = NL80211_IFTYPE_UNSPECIFIED;
+       drv->nlmode = NL80211_IFTYPE_STATION;
++#ifdef HOSTAPD
++      drv->num_if_indices = sizeof(drv->default_if_indices) / sizeof(int);
++      drv->if_indices = drv->default_if_indices;
++#endif
++
+       if (wpa_driver_nl80211_init_nl(drv)) {
+               os_free(drv);
+               return NULL;
+@@ -7654,8 +7667,6 @@ static void *i802_init(struct hostapd_da
+               br_ifindex = 0;
+       }
+-      drv->num_if_indices = sizeof(drv->default_if_indices) / sizeof(int);
+-      drv->if_indices = drv->default_if_indices;
+       for (i = 0; i < params->num_bridge; i++) {
+               if (params->bridge[i]) {
+                       ifindex = if_nametoindex(params->bridge[i]);