hostapd: update to 2023-03-29
[openwrt/staging/dedeckeh.git] / package / network / services / hostapd / patches / 340-reload_freq_change.patch
index 87c30976d04e65ba51e3231ec4e7e6b9e6fbfc1d..9a468079d1a54ab2d7e63ae99e92ae7a42fc1dba 100644 (file)
@@ -1,18 +1,22 @@
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -90,6 +90,25 @@ static void hostapd_reload_bss(struct ho
+@@ -142,6 +142,29 @@ static void hostapd_reload_bss(struct ho
  #endif /* CONFIG_NO_RADIUS */
  
        ssid = &hapd->conf->ssid;
 +
 +      hostapd_set_freq(hapd, hapd->iconf->hw_mode, hapd->iface->freq,
 +                       hapd->iconf->channel,
++                       hapd->iconf->enable_edmg,
++                       hapd->iconf->edmg_channel,
 +                       hapd->iconf->ieee80211n,
 +                       hapd->iconf->ieee80211ac,
++                       hapd->iconf->ieee80211ax,
++                       hapd->iconf->ieee80211be,
 +                       hapd->iconf->secondary_channel,
-+                       hapd->iconf->vht_oper_chwidth,
-+                       hapd->iconf->vht_oper_centr_freq_seg0_idx,
-+                       hapd->iconf->vht_oper_centr_freq_seg1_idx);
++                       hostapd_get_oper_chwidth(hapd->iconf),
++                       hostapd_get_oper_centr_freq_seg0_idx(hapd->iconf),
++                       hostapd_get_oper_centr_freq_seg1_idx(hapd->iconf));
 +
 +      if (hapd->iface->current_mode) {
 +              if (hostapd_prepare_rates(hapd->iface, hapd->iface->current_mode)) {
@@ -26,7 +30,7 @@
        if (!ssid->wpa_psk_set && ssid->wpa_psk && !ssid->wpa_psk->next &&
            ssid->wpa_passphrase_set && ssid->wpa_passphrase) {
                /*
-@@ -168,6 +187,7 @@ int hostapd_reload_config(struct hostapd
+@@ -250,6 +273,7 @@ int hostapd_reload_config(struct hostapd
        struct hostapd_data *hapd = iface->bss[0];
        struct hostapd_config *newconf, *oldconf;
        size_t j;
@@ -34,8 +38,8 @@
  
        if (iface->config_fname == NULL) {
                /* Only in-memory config in use - assume it has been updated */
-@@ -189,21 +209,20 @@ int hostapd_reload_config(struct hostapd
-       oldconf = hapd->iconf;
+@@ -300,6 +324,17 @@ int hostapd_reload_config(struct hostapd
+       }
        iface->conf = newconf;
  
 +      for (i = 0; i < iface->num_hw_features; i++) {
 +
        for (j = 0; j < iface->num_bss; j++) {
                hapd = iface->bss[j];
+               if (!hapd->conf->config_id || !newconf->bss[j]->config_id ||
+@@ -307,21 +342,6 @@ int hostapd_reload_config(struct hostapd
+                             newconf->bss[j]->config_id) != 0)
+                       hostapd_clear_old_bss(hapd);
                hapd->iconf = newconf;
 -              hapd->iconf->channel = oldconf->channel;
 -              hapd->iconf->acs = oldconf->acs;
 -              hapd->iconf->ieee80211ac = oldconf->ieee80211ac;
 -              hapd->iconf->ht_capab = oldconf->ht_capab;
 -              hapd->iconf->vht_capab = oldconf->vht_capab;
--              hapd->iconf->vht_oper_chwidth = oldconf->vht_oper_chwidth;
--              hapd->iconf->vht_oper_centr_freq_seg0_idx =
--                      oldconf->vht_oper_centr_freq_seg0_idx;
--              hapd->iconf->vht_oper_centr_freq_seg1_idx =
--                      oldconf->vht_oper_centr_freq_seg1_idx;
+-              hostapd_set_oper_chwidth(hapd->iconf,
+-                                       hostapd_get_oper_chwidth(oldconf));
+-              hostapd_set_oper_centr_freq_seg0_idx(
+-                      hapd->iconf,
+-                      hostapd_get_oper_centr_freq_seg0_idx(oldconf));
+-              hostapd_set_oper_centr_freq_seg1_idx(
+-                      hapd->iconf,
+-                      hostapd_get_oper_centr_freq_seg1_idx(oldconf));
                hapd->conf = newconf->bss[j];
                hostapd_reload_bss(hapd);
        }