hostapd: ubus: add notification for BSS transition response
[openwrt/openwrt.git] / package / network / services / hostapd / patches / 600-ubus_support.patch
index 005ed54e0c7f78bb644fa43f780a3e0bee301044..d77d245243b6c2dd6dc56999cb0eacd5becb72e3 100644 (file)
        struct os_reltime backlogged_until;
  #endif /* CONFIG_AIRTIME_POLICY */
  
+--- a/src/ap/wnm_ap.c
++++ b/src/ap/wnm_ap.c
+@@ -463,7 +463,7 @@ static void ieee802_11_rx_bss_trans_mgmt
+                                             size_t len)
+ {
+       u8 dialog_token, status_code, bss_termination_delay;
+-      const u8 *pos, *end;
++      const u8 *pos, *end, *target_bssid;
+       int enabled = hapd->conf->bss_transition;
+       struct sta_info *sta;
+@@ -510,6 +510,7 @@ static void ieee802_11_rx_bss_trans_mgmt
+                       wpa_printf(MSG_DEBUG, "WNM: not enough room for Target BSSID field");
+                       return;
+               }
++              target_bssid = pos;
+               sta->agreed_to_steer = 1;
+               eloop_cancel_timeout(ap_sta_reset_steer_flag_timer, hapd, sta);
+               eloop_register_timeout(2, 0, ap_sta_reset_steer_flag_timer,
+@@ -529,6 +530,10 @@ static void ieee802_11_rx_bss_trans_mgmt
+                       MAC2STR(addr), status_code, bss_termination_delay);
+       }
++      hostapd_ubus_notify_bss_transition_response(hapd, sta->addr, dialog_token,
++                                                  status_code, bss_termination_delay,
++                                                  target_bssid, pos, end - pos);
++
+       wpa_hexdump(MSG_DEBUG, "WNM: BSS Transition Candidate List Entries",
+                   pos, end - pos);
+ }