static void gas_query_done(struct gas_query *gas, struct gas_query_pending *query, enum gas_query_result result) { if (query->offchannel_tx_started) offchannel_send_action_done(gas->wpa_s); eloop_cancel_timeout(gas_query_tx_comeback_timeout, gas, query); eloop_cancel_timeout(gas_query_timeout, gas, query); dl_list_del(&query->list); query->cb(query->ctx, query->addr, query->dialog_token, result, query->adv_proto, query->resp, query->status_code); wpabuf_free(query->adv_proto); wpabuf_free(query->resp); os_free(query); }
static void gas_query_tx_comeback_req_delay(struct gas_query *gas, struct gas_query_pending *query, u16 comeback_delay) { unsigned int secs, usecs; if (comeback_delay > 1 && query->offchannel_tx_started) { offchannel_send_action_done(gas->wpa_s); query->offchannel_tx_started = 0; } secs = (comeback_delay * 1024) / 1000000; usecs = comeback_delay * 1024 - secs * 1000000; wpa_printf(MSG_DEBUG, "GAS: Send comeback request to " MACSTR " in %u secs %u usecs", MAC2STR(query->addr), secs, usecs); eloop_cancel_timeout(gas_query_tx_comeback_timeout, gas, query); eloop_register_timeout(secs, usecs, gas_query_tx_comeback_timeout, gas, query); }
static void gas_query_done(struct gas_query *gas, struct gas_query_pending *query, enum gas_query_result result) { wpa_msg(gas->wpa_s, MSG_INFO, GAS_QUERY_DONE "addr=" MACSTR " dialog_token=%u freq=%d status_code=%u result=%s", MAC2STR(query->addr), query->dialog_token, query->freq, query->status_code, gas_result_txt(result)); if (gas->current == query) gas->current = NULL; if (query->offchannel_tx_started) offchannel_send_action_done(gas->wpa_s); eloop_cancel_timeout(gas_query_tx_comeback_timeout, gas, query); eloop_cancel_timeout(gas_query_timeout, gas, query); dl_list_del(&query->list); query->cb(query->ctx, query->addr, query->dialog_token, result, query->adv_proto, query->resp, query->status_code); gas_query_free(query, 0); }