GAS: Send error response if no room for pending dialog context

Instead of silently dropping the response that requires fragmentation,
send an error response to the station to make it aware that no full
response will be available.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2014-05-25 18:34:10 +03:00
parent 745f87715e
commit d73c7b9626

View file

@ -989,14 +989,17 @@ static void gas_serv_req_local_processing(struct hostapd_data *hapd,
"for " MACSTR " (dialog token %u)", "for " MACSTR " (dialog token %u)",
MAC2STR(sa), dialog_token); MAC2STR(sa), dialog_token);
wpabuf_free(buf); wpabuf_free(buf);
return; tx_buf = gas_anqp_build_initial_resp_buf(
dialog_token, WLAN_STATUS_UNSPECIFIED_FAILURE,
0, NULL);
} else {
di->prot = prot;
di->sd_resp = buf;
di->sd_resp_pos = 0;
tx_buf = gas_anqp_build_initial_resp_buf(
dialog_token, WLAN_STATUS_SUCCESS,
comeback_delay, NULL);
} }
di->prot = prot;
di->sd_resp = buf;
di->sd_resp_pos = 0;
tx_buf = gas_anqp_build_initial_resp_buf(
dialog_token, WLAN_STATUS_SUCCESS, comeback_delay,
NULL);
} else { } else {
wpa_printf(MSG_DEBUG, "ANQP: Initial response (no comeback)"); wpa_printf(MSG_DEBUG, "ANQP: Initial response (no comeback)");
tx_buf = gas_anqp_build_initial_resp_buf( tx_buf = gas_anqp_build_initial_resp_buf(