DPP: Move GAS encapsulation into dpp_build_conf_req()
Avoid duplicated code in each user of dpp_build_conf_req() by moving the common encapsulation case into this helper function. Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
be609c6fc6
commit
bd23daa8e6
3 changed files with 58 additions and 50 deletions
|
@ -1066,7 +1066,7 @@ fail2:
|
|||
static void wpas_dpp_start_gas_client(struct wpa_supplicant *wpa_s)
|
||||
{
|
||||
struct dpp_authentication *auth = wpa_s->dpp_auth;
|
||||
struct wpabuf *buf, *conf_req;
|
||||
struct wpabuf *buf;
|
||||
char json[100];
|
||||
int res;
|
||||
|
||||
|
@ -1087,34 +1087,13 @@ static void wpas_dpp_start_gas_client(struct wpa_supplicant *wpa_s)
|
|||
offchannel_send_action_done(wpa_s);
|
||||
wpas_dpp_listen_stop(wpa_s);
|
||||
|
||||
conf_req = dpp_build_conf_req(auth, json);
|
||||
if (!conf_req) {
|
||||
buf = dpp_build_conf_req(auth, json);
|
||||
if (!buf) {
|
||||
wpa_printf(MSG_DEBUG,
|
||||
"DPP: No configuration request data available");
|
||||
return;
|
||||
}
|
||||
|
||||
buf = gas_build_initial_req(0, 10 + 2 + wpabuf_len(conf_req));
|
||||
if (!buf) {
|
||||
wpabuf_free(conf_req);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Advertisement Protocol IE */
|
||||
wpabuf_put_u8(buf, WLAN_EID_ADV_PROTO);
|
||||
wpabuf_put_u8(buf, 8); /* Length */
|
||||
wpabuf_put_u8(buf, 0x7f);
|
||||
wpabuf_put_u8(buf, WLAN_EID_VENDOR_SPECIFIC);
|
||||
wpabuf_put_u8(buf, 5);
|
||||
wpabuf_put_be24(buf, OUI_WFA);
|
||||
wpabuf_put_u8(buf, DPP_OUI_TYPE);
|
||||
wpabuf_put_u8(buf, 0x01);
|
||||
|
||||
/* GAS Query */
|
||||
wpabuf_put_le16(buf, wpabuf_len(conf_req));
|
||||
wpabuf_put_buf(buf, conf_req);
|
||||
wpabuf_free(conf_req);
|
||||
|
||||
wpa_printf(MSG_DEBUG, "DPP: GAS request to " MACSTR " (freq %u MHz)",
|
||||
MAC2STR(auth->peer_mac_addr), auth->curr_freq);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue