nl80211: Reject deauth/disassoc for mesh interface
authorBob Copeland <me@bobcopeland.com>
Mon, 1 Sep 2014 04:23:23 +0000 (00:23 -0400)
committerJouni Malinen <j@w1.fi>
Sat, 25 Oct 2014 10:47:48 +0000 (13:47 +0300)
sta_info call these to send out the disassoc and deauth frame
which are both not relevent to mesh. So don't send them.

Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com>
Signed-off-by: Javier Lopez <jlopex@gmail.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: Jason Mobarak <x@jason.mobarak.name>
Signed-off-by: Bob Copeland <me@bobcopeland.com>
src/drivers/driver_nl80211.c

index 1f8b33f..606023e 100644 (file)
@@ -10078,6 +10078,9 @@ static int i802_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr,
        struct wpa_driver_nl80211_data *drv = bss->drv;
        struct ieee80211_mgmt mgmt;
 
+       if (is_mesh_interface(drv->nlmode))
+               return -1;
+
        if (drv->device_ap_sme)
                return wpa_driver_nl80211_sta_remove(bss, addr, 1, reason);
 
@@ -10102,6 +10105,9 @@ static int i802_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr,
        struct wpa_driver_nl80211_data *drv = bss->drv;
        struct ieee80211_mgmt mgmt;
 
+       if (is_mesh_interface(drv->nlmode))
+               return -1;
+
        if (drv->device_ap_sme)
                return wpa_driver_nl80211_sta_remove(bss, addr, 0, reason);