hostapd: update to version 2014-04-24, fixes some dfs related issues
[openwrt/staging/dedeckeh.git] / package / network / services / hostapd / patches / 440-dynamic_20_40_mhz.patch
index 24ab2d52eebd4698e3810e04ff6f62dcf5d0f9ca..af2fb26c81d684feb81fca6ffb1812ba43b63edb 100644 (file)
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2644,6 +2644,10 @@ static int hostapd_config_fill(struct ho
+@@ -2648,6 +2648,10 @@ static int hostapd_config_fill(struct ho
                                   line);
                        return 1;
                }
  
  
  u8 * hostapd_eid_ht_capabilities(struct hostapd_data *hapd, u8 *eid)
-@@ -92,12 +94,15 @@ u8 * hostapd_eid_ht_operation(struct hos
+@@ -92,6 +94,9 @@ u8 * hostapd_eid_ht_operation(struct hos
  
-       oper->control_chan = hapd->iconf->channel;
+       oper->primary_chan = hapd->iconf->channel;
        oper->operation_mode = host_to_le16(hapd->iface->ht_op_mode);
--      if (hapd->iconf->secondary_channel == 1)
--              oper->ht_param |= HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE |
--                      HT_INFO_HT_PARAM_REC_TRANS_CHNL_WIDTH;
--      if (hapd->iconf->secondary_channel == -1)
--              oper->ht_param |= HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW |
--                      HT_INFO_HT_PARAM_REC_TRANS_CHNL_WIDTH;
-+
-+      if (!hapd->iface->force_20mhz) {
-+              if (hapd->iconf->secondary_channel == 1)
-+                      oper->ht_param |= HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE |
-+                              HT_INFO_HT_PARAM_REC_TRANS_CHNL_WIDTH;
-+              if (hapd->iconf->secondary_channel == -1)
-+                      oper->ht_param |= HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW |
-+                              HT_INFO_HT_PARAM_REC_TRANS_CHNL_WIDTH;
-+      }
++      if (hapd->iface->force_20mhz)
++              goto skip;
++
+       if (hapd->iconf->secondary_channel == 1)
+               oper->ht_param |= HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE |
+                       HT_INFO_HT_PARAM_STA_CHNL_WIDTH;
+@@ -99,6 +104,7 @@ u8 * hostapd_eid_ht_operation(struct hos
+               oper->ht_param |= HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW |
+                       HT_INFO_HT_PARAM_STA_CHNL_WIDTH;
  
++skip:
        pos += sizeof(*oper);
  
-@@ -291,3 +296,84 @@ void hostapd_get_ht_capab(struct hostapd
+       return pos;
+@@ -288,3 +294,84 @@ void hostapd_get_ht_capab(struct hostapd
  
        neg_ht_cap->ht_capabilities_info = host_to_le16(cap);
  }