hostapd: fix build when 80211BE enabled
authorJanusz Dziedzic <janusz.dziedzic@gmail.com>
Tue, 20 Aug 2024 11:22:31 +0000 (13:22 +0200)
committerJohn Crispin <john@phrozen.org>
Wed, 2 Oct 2024 13:12:18 +0000 (15:12 +0200)
In file included from hostapd-wpad-basic-mbedtls/hostapd-2024.03.09~695277a5/src/ap/ubus.h:11,
                 from hostapd-wpad-basic-mbedtls/hostapd-2024.03.09~695277a5/src/ap/hostapd.h:21,
                 from main.c:26:
hostapd-2024.03.09~695277a5/src/ap/sta_info.h: In function 'ap_sta_is_mld':
hostapd-2024.03.09~695277a5/src/ap/sta_info.h:425:20: error: invalid use of undefined type 'struct hostapd_data'
  425 |         return hapd->conf->mld_ap && sta && sta->mld_info.mld_sta;
      |                    ^~

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch [new file with mode: 0644]

diff --git a/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch b/package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch
new file mode 100644 (file)
index 0000000..55c6e63
--- /dev/null
@@ -0,0 +1,53 @@
+--- a/src/ap/sta_info.c
++++ b/src/ap/sta_info.c
+@@ -1836,3 +1836,22 @@ void ap_sta_free_sta_profile(struct mld_
+       }
+ }
+ #endif /* CONFIG_IEEE80211BE */
++
++bool ap_sta_is_mld(struct hostapd_data *hapd,
++                 struct sta_info *sta)
++{
++#ifdef CONFIG_IEEE80211BE
++      return hapd->conf->mld_ap && sta && sta->mld_info.mld_sta;
++#else /* CONFIG_IEEE80211BE */
++      return false;
++#endif /* CONFIG_IEEE80211BE */
++}
++
++void ap_sta_set_mld(struct sta_info *sta, bool mld)
++{
++#ifdef CONFIG_IEEE80211BE
++      if (sta)
++              sta->mld_info.mld_sta = mld;
++#endif /* CONFIG_IEEE80211BE */
++}
++
+--- a/src/ap/sta_info.h
++++ b/src/ap/sta_info.h
+@@ -417,23 +417,8 @@ int ap_sta_re_add(struct hostapd_data *h
+ void ap_free_sta_pasn(struct hostapd_data *hapd, struct sta_info *sta);
+-static inline bool ap_sta_is_mld(struct hostapd_data *hapd,
+-                               struct sta_info *sta)
+-{
+-#ifdef CONFIG_IEEE80211BE
+-      return hapd->conf->mld_ap && sta && sta->mld_info.mld_sta;
+-#else /* CONFIG_IEEE80211BE */
+-      return false;
+-#endif /* CONFIG_IEEE80211BE */
+-}
+-
+-static inline void ap_sta_set_mld(struct sta_info *sta, bool mld)
+-{
+-#ifdef CONFIG_IEEE80211BE
+-      if (sta)
+-              sta->mld_info.mld_sta = mld;
+-#endif /* CONFIG_IEEE80211BE */
+-}
++bool ap_sta_is_mld(struct hostapd_data *hapd, struct sta_info *sta);
++void ap_sta_set_mld(struct sta_info *sta, bool mld);
+ void ap_sta_free_sta_profile(struct mld_info *info);