]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
GAS: Remove unnecessarily duplicate gas_frag_limit configuration
authorJouni Malinen <j@w1.fi>
Thu, 29 Dec 2016 22:23:10 +0000 (00:23 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 29 Dec 2016 22:23:10 +0000 (00:23 +0200)
The actual BSS configuration parameter can be updated with the SET
control interface command, so there is no need to maintain a separate
per-BSS parameter and a separate control interface handling for this.

Signed-off-by: Jouni Malinen <j@w1.fi>
hostapd/config_file.c
hostapd/ctrl_iface.c
src/ap/ap_config.c
src/ap/ap_config.h
src/ap/gas_serv.c
src/ap/hostapd.h

index e1f9f640cf55d4f4d72355da01cff0d0674c4caf..7e68b3800bf3726ea0f7b78c8d555f6e0a345ece 100644 (file)
@@ -3298,7 +3298,15 @@ static int hostapd_config_fill(struct hostapd_config *conf,
                if (parse_anqp_elem(bss, pos, line) < 0)
                        return 1;
        } else if (os_strcmp(buf, "gas_frag_limit") == 0) {
-               bss->gas_frag_limit = atoi(pos);
+               int val = atoi(pos);
+
+               if (val <= 0) {
+                       wpa_printf(MSG_ERROR,
+                                  "Line %d: Invalid gas_frag_limit '%s'",
+                                  line, pos);
+                       return 1;
+               }
+               bss->gas_frag_limit = val;
        } else if (os_strcmp(buf, "gas_comeback_delay") == 0) {
                bss->gas_comeback_delay = atoi(pos);
        } else if (os_strcmp(buf, "qos_map_set") == 0) {
index 164e10d6ad3254cdf12625ed750131a924de019a..64d02100c5569a0f2297458191c410d420268937 100644 (file)
@@ -1352,14 +1352,6 @@ static int hostapd_ctrl_iface_set(struct hostapd_data *hapd, char *cmd)
                wpa_printf(MSG_DEBUG, "WPS: Testing - wps_corrupt_pkhash=%d",
                           wps_corrupt_pkhash);
 #endif /* CONFIG_WPS_TESTING */
-#ifdef CONFIG_INTERWORKING
-       } else if (os_strcasecmp(cmd, "gas_frag_limit") == 0) {
-               int val = atoi(value);
-               if (val <= 0)
-                       ret = -1;
-               else
-                       hapd->gas_frag_limit = val;
-#endif /* CONFIG_INTERWORKING */
 #ifdef CONFIG_TESTING_OPTIONS
        } else if (os_strcasecmp(cmd, "ext_mgmt_frame_handling") == 0) {
                hapd->ext_mgmt_frame_handling = atoi(value);
index 3f5e58bb8d133104dfef4aa823fff1640c3dcd32..e417a1247a2550ccfeb19f99ac1876ef1dab5713 100644 (file)
@@ -96,6 +96,8 @@ void hostapd_config_defaults_bss(struct hostapd_bss_config *bss)
 
        bss->sae_anti_clogging_threshold = 5;
 
+       bss->gas_frag_limit = 1400;
+
 #ifdef CONFIG_FILS
        dl_list_init(&bss->fils_realms);
 #endif /* CONFIG_FILS */
index 97ec0d4e4af21fa7ba8c070e00e59052e66d74ee..075261c74e7d559a4870051e3234f7e905abfc93 100644 (file)
@@ -515,7 +515,7 @@ struct hostapd_bss_config {
        struct dl_list anqp_elem; /* list of struct anqp_element */
 
        u16 gas_comeback_delay;
-       int gas_frag_limit;
+       size_t gas_frag_limit;
        int gas_address3;
 
        u8 qos_map_set[16 + 2 * 21];
index 72b0e6a5250c9888eb10601b9ffcb4e28c5f5ca4..7595281d0fd6109bd246a2cf3a0b6a4495e43860 100644 (file)
@@ -1245,7 +1245,7 @@ static void gas_serv_req_local_processing(struct hostapd_data *hapd,
        }
 #endif /* CONFIG_P2P */
 
-       if (wpabuf_len(buf) > hapd->gas_frag_limit ||
+       if (wpabuf_len(buf) > hapd->conf->gas_frag_limit ||
            hapd->conf->gas_comeback_delay) {
                struct gas_dialog_info *di;
                u16 comeback_delay = 1;
@@ -1449,8 +1449,8 @@ static void gas_serv_rx_gas_comeback_req(struct hostapd_data *hapd,
        }
 
        frag_len = wpabuf_len(dialog->sd_resp) - dialog->sd_resp_pos;
-       if (frag_len > hapd->gas_frag_limit) {
-               frag_len = hapd->gas_frag_limit;
+       if (frag_len > hapd->conf->gas_frag_limit) {
+               frag_len = hapd->conf->gas_frag_limit;
                more = 1;
        }
        wpa_msg(hapd->msg_ctx, MSG_DEBUG, "GAS: resp frag_len %u",
@@ -1551,9 +1551,6 @@ int gas_serv_init(struct hostapd_data *hapd)
 {
        hapd->public_action_cb2 = gas_serv_rx_public_action;
        hapd->public_action_cb2_ctx = hapd;
-       hapd->gas_frag_limit = 1400;
-       if (hapd->conf->gas_frag_limit > 0)
-               hapd->gas_frag_limit = hapd->conf->gas_frag_limit;
        return 0;
 }
 
index fd5aaedcc5f510f0d11d4a7116ed22a3484cc1a2..45176edb930324947c3b65f2a796afb267166743 100644 (file)
@@ -260,9 +260,6 @@ struct hostapd_data {
        int noa_start;
        int noa_duration;
 #endif /* CONFIG_P2P */
-#ifdef CONFIG_INTERWORKING
-       size_t gas_frag_limit;
-#endif /* CONFIG_INTERWORKING */
 #ifdef CONFIG_PROXYARP
        struct l2_packet_data *sock_dhcp;
        struct l2_packet_data *sock_ndisc;