[PATCH v3 2/7] multiple_bssid: add 2 new helper functions
John Crispin
john at phrozen.org
Wed Aug 12 12:52:22 EDT 2020
Wehn dealing with multiple bssid support we need to have a means to get a
BSSs index and hostapd_data of the transmitting interface.
Signed-off-by: John Crispin <john at phrozen.org>
---
src/ap/hostapd.c | 20 ++++++++++++++++++++
src/ap/hostapd.h | 2 ++
2 files changed, 22 insertions(+)
diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
index b37f49f9a..c442b82db 100644
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -87,6 +87,26 @@ int hostapd_for_each_interface(struct hapd_interfaces *interfaces,
}
+int hostapd_get_bss_index(struct hostapd_data *hapd)
+{
+ size_t i;
+
+ for (i = 1; i < hapd->iface->num_bss; i++)
+ if (hapd->iface->bss[i] == hapd)
+ return i;
+ return 0;
+}
+
+
+struct hostapd_data * hostapd_get_primary_bss(struct hostapd_data *hapd)
+{
+ if (hapd->iconf->multiple_bssid)
+ return hapd->iface->bss[0];
+
+ return hapd;
+}
+
+
void hostapd_reconfig_encryption(struct hostapd_data *hapd)
{
if (hapd->wpa_auth)
diff --git a/src/ap/hostapd.h b/src/ap/hostapd.h
index b70d13fba..44d2c6068 100644
--- a/src/ap/hostapd.h
+++ b/src/ap/hostapd.h
@@ -595,6 +595,8 @@ struct hostapd_iface {
int hostapd_for_each_interface(struct hapd_interfaces *interfaces,
int (*cb)(struct hostapd_iface *iface,
void *ctx), void *ctx);
+int hostapd_get_bss_index(struct hostapd_data *hapd);
+struct hostapd_data * hostapd_get_primary_bss(struct hostapd_data *hapd);
int hostapd_reload_config(struct hostapd_iface *iface);
void hostapd_reconfig_encryption(struct hostapd_data *hapd);
struct hostapd_data *
--
2.25.1
More information about the Hostap
mailing list