hostapd: fix mesh interface bridge handling
authorFelix Fietkau <nbd@openwrt.org>
Thu, 28 Jan 2016 17:20:10 +0000 (17:20 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 28 Jan 2016 17:20:10 +0000 (17:20 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 48529

package/network/services/hostapd/patches/100-mesh_mode_fix.patch [new file with mode: 0644]
package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch
package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch
package/network/services/hostapd/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.patch
package/network/services/hostapd/patches/462-wpa_s-support-htmode-param.patch

diff --git a/package/network/services/hostapd/patches/100-mesh_mode_fix.patch b/package/network/services/hostapd/patches/100-mesh_mode_fix.patch
new file mode 100644 (file)
index 0000000..1be7559
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/src/drivers/driver_nl80211.c
++++ b/src/drivers/driver_nl80211.c
+@@ -2262,7 +2262,8 @@ wpa_driver_nl80211_finish_drv_init(struc
+       if (drv->hostapd || bss->static_ap)
+               nlmode = NL80211_IFTYPE_AP;
+-      else if (bss->if_dynamic)
++      else if (bss->if_dynamic ||
++               nl80211_get_ifmode(bss) == NL80211_IFTYPE_MESH_POINT)
+               nlmode = nl80211_get_ifmode(bss);
+       else
+               nlmode = NL80211_IFTYPE_STATION;
index 4738fcd..54dec31 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -3708,7 +3708,7 @@ static int nl80211_set_channel(struct i8
+@@ -3709,7 +3709,7 @@ static int nl80211_set_channel(struct i8
                   freq->freq, freq->ht_enabled, freq->vht_enabled,
                   freq->bandwidth, freq->center_freq1, freq->center_freq2);
  
index bc72023..2bcf49a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -2323,13 +2323,18 @@ wpa_driver_nl80211_finish_drv_init(struc
+@@ -2324,13 +2324,18 @@ wpa_driver_nl80211_finish_drv_init(struc
  }
  
  
@@ -22,7 +22,7 @@
        return send_and_recv_msgs(drv, msg, NULL, NULL);
  }
  
-@@ -2380,7 +2385,7 @@ static void wpa_driver_nl80211_deinit(st
+@@ -2381,7 +2386,7 @@ static void wpa_driver_nl80211_deinit(st
        nl80211_remove_monitor_interface(drv);
  
        if (is_ap_interface(drv->nlmode))
@@ -31,7 +31,7 @@
  
        if (drv->eapol_sock >= 0) {
                eloop_unregister_read_sock(drv->eapol_sock);
-@@ -4232,8 +4237,7 @@ static void nl80211_teardown_ap(struct i
+@@ -4233,8 +4238,7 @@ static void nl80211_teardown_ap(struct i
                nl80211_remove_monitor_interface(drv);
        else
                nl80211_mgmt_unsubscribe(bss, "AP teardown");
@@ -41,7 +41,7 @@
  }
  
  
-@@ -6164,8 +6168,6 @@ static int wpa_driver_nl80211_if_remove(
+@@ -6165,8 +6169,6 @@ static int wpa_driver_nl80211_if_remove(
        } else {
                wpa_printf(MSG_DEBUG, "nl80211: First BSS - reassign context");
                nl80211_teardown_ap(bss);
@@ -50,7 +50,7 @@
                nl80211_destroy_bss(bss);
                if (!bss->added_if)
                        i802_set_iface_flags(bss, 0);
-@@ -6527,8 +6529,7 @@ static int wpa_driver_nl80211_deinit_ap(
+@@ -6528,8 +6530,7 @@ static int wpa_driver_nl80211_deinit_ap(
        struct wpa_driver_nl80211_data *drv = bss->drv;
        if (!is_ap_interface(drv->nlmode))
                return -1;
@@ -60,7 +60,7 @@
  
        /*
         * If the P2P GO interface was dynamically added, then it is
-@@ -6547,8 +6548,7 @@ static int wpa_driver_nl80211_stop_ap(vo
+@@ -6548,8 +6549,7 @@ static int wpa_driver_nl80211_stop_ap(vo
        struct wpa_driver_nl80211_data *drv = bss->drv;
        if (!is_ap_interface(drv->nlmode))
                return -1;
index faff322..febbd14 100644 (file)
@@ -10,7 +10,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
 
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -4491,7 +4491,7 @@ static int wpa_driver_nl80211_ibss(struc
+@@ -4492,7 +4492,7 @@ static int wpa_driver_nl80211_ibss(struc
                                   struct wpa_driver_associate_params *params)
  {
        struct nl_msg *msg;
@@ -19,7 +19,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
        int count = 0;
  
        wpa_printf(MSG_DEBUG, "nl80211: Join IBSS (ifindex=%d)", drv->ifindex);
-@@ -4518,6 +4518,37 @@ retry:
+@@ -4519,6 +4519,37 @@ retry:
            nl80211_put_beacon_int(msg, params->beacon_int))
                goto fail;
  
index 62ce84e..aa2ac19 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Antonio Quartulli <ordex@autistici.org>
         * bssid_hint - BSSID of a proposed AP
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -4549,6 +4549,22 @@ retry:
+@@ -4550,6 +4550,22 @@ retry:
                nla_put_u32(msg, NL80211_ATTR_MCAST_RATE, params->mcast_rate);
        }