aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/hostapd/patches
diff options
context:
space:
mode:
authorDavid Bauer <mail@david-bauer.net>2021-10-31 00:11:51 +0200
committerDavid Bauer <mail@david-bauer.net>2021-12-20 00:15:03 +0100
commit6d1e380666483efbffb17aa87a61e3f31c9249b7 (patch)
tree7ba7e786a999d2829d6e454679f4cac42d04de9d /package/network/services/hostapd/patches
parentdd39249f086e1428f68c6f9f435daa641eecf6e8 (diff)
downloadupstream-6d1e380666483efbffb17aa87a61e3f31c9249b7.tar.gz
upstream-6d1e380666483efbffb17aa87a61e3f31c9249b7.tar.bz2
upstream-6d1e380666483efbffb17aa87a61e3f31c9249b7.zip
hostapd: provide BSS-transition-queries to ubus subscribers
Provide incoming BSS transition queries to ubus subscribers. This allows external steering daemons to provide clients with an optimal list of transition candidates. This commit has no functional state in case no ubus subscriber is present or it does not handle this ubus message. To prevent hostapd from sending out a generic response by itself, a subscribing daemon has to return a non-zero response code to hostapd. Signed-off-by: David Bauer <mail@david-bauer.net>
Diffstat (limited to 'package/network/services/hostapd/patches')
-rw-r--r--package/network/services/hostapd/patches/600-ubus_support.patch16
1 files changed, 13 insertions, 3 deletions
diff --git a/package/network/services/hostapd/patches/600-ubus_support.patch b/package/network/services/hostapd/patches/600-ubus_support.patch
index bf2f8a52d1..58313f1ecd 100644
--- a/package/network/services/hostapd/patches/600-ubus_support.patch
+++ b/package/network/services/hostapd/patches/600-ubus_support.patch
@@ -515,7 +515,17 @@
--- a/src/ap/wnm_ap.c
+++ b/src/ap/wnm_ap.c
-@@ -463,7 +463,7 @@ static void ieee802_11_rx_bss_trans_mgmt
+@@ -441,7 +441,8 @@ static void ieee802_11_rx_bss_trans_mgmt
+ wpa_hexdump(MSG_DEBUG, "WNM: BSS Transition Candidate List Entries",
+ pos, end - pos);
+
+- ieee802_11_send_bss_trans_mgmt_request(hapd, addr, dialog_token);
++ if (!hostapd_ubus_notify_bss_transition_query(hapd, addr, dialog_token, reason, pos, end - pos))
++ ieee802_11_send_bss_trans_mgmt_request(hapd, addr, dialog_token);
+ }
+
+
+@@ -463,7 +464,7 @@ static void ieee802_11_rx_bss_trans_mgmt
size_t len)
{
u8 dialog_token, status_code, bss_termination_delay;
@@ -524,7 +534,7 @@
int enabled = hapd->conf->bss_transition;
struct sta_info *sta;
-@@ -510,6 +510,7 @@ static void ieee802_11_rx_bss_trans_mgmt
+@@ -510,6 +511,7 @@ static void ieee802_11_rx_bss_trans_mgmt
wpa_printf(MSG_DEBUG, "WNM: not enough room for Target BSSID field");
return;
}
@@ -532,7 +542,7 @@
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
+@@ -529,6 +531,10 @@ static void ieee802_11_rx_bss_trans_mgmt
MAC2STR(addr), status_code, bss_termination_delay);
}