|
@@ -118,8 +118,9 @@ static void wpas_send_action_cb(void *eloop_ctx, void *timeout_ctx)
|
|
}
|
|
}
|
|
|
|
|
|
wpa_printf(MSG_DEBUG, "Off-channel: Sending pending Action frame to "
|
|
wpa_printf(MSG_DEBUG, "Off-channel: Sending pending Action frame to "
|
|
- MACSTR " using interface %s",
|
|
|
|
- MAC2STR(wpa_s->pending_action_dst), iface->ifname);
|
|
|
|
|
|
+ MACSTR " using interface %s (pending_action_tx=%p)",
|
|
|
|
+ MAC2STR(wpa_s->pending_action_dst), iface->ifname,
|
|
|
|
+ wpa_s->pending_action_tx);
|
|
res = wpa_drv_send_action(iface, wpa_s->pending_action_freq, 0,
|
|
res = wpa_drv_send_action(iface, wpa_s->pending_action_freq, 0,
|
|
wpa_s->pending_action_dst,
|
|
wpa_s->pending_action_dst,
|
|
wpa_s->pending_action_src,
|
|
wpa_s->pending_action_src,
|
|
@@ -183,8 +184,12 @@ void offchannel_send_action_tx_status(
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- wpa_printf(MSG_DEBUG, "Off-channel: Delete matching pending action frame");
|
|
|
|
-
|
|
|
|
|
|
+ wpa_printf(MSG_DEBUG,
|
|
|
|
+ "Off-channel: Delete matching pending action frame (dst="
|
|
|
|
+ MACSTR " pending_action_tx=%p)", MAC2STR(dst),
|
|
|
|
+ wpa_s->pending_action_tx);
|
|
|
|
+ wpa_hexdump_buf(MSG_MSGDUMP, "Pending TX frame",
|
|
|
|
+ wpa_s->pending_action_tx);
|
|
wpabuf_free(wpa_s->pending_action_tx);
|
|
wpabuf_free(wpa_s->pending_action_tx);
|
|
wpa_s->pending_action_tx = NULL;
|
|
wpa_s->pending_action_tx = NULL;
|
|
|
|
|
|
@@ -250,8 +255,11 @@ int offchannel_send_action(struct wpa_supplicant *wpa_s, unsigned int freq,
|
|
|
|
|
|
if (wpa_s->pending_action_tx) {
|
|
if (wpa_s->pending_action_tx) {
|
|
wpa_printf(MSG_DEBUG, "Off-channel: Dropped pending Action "
|
|
wpa_printf(MSG_DEBUG, "Off-channel: Dropped pending Action "
|
|
- "frame TX to " MACSTR,
|
|
|
|
- MAC2STR(wpa_s->pending_action_dst));
|
|
|
|
|
|
+ "frame TX to " MACSTR " (pending_action_tx=%p)",
|
|
|
|
+ MAC2STR(wpa_s->pending_action_dst),
|
|
|
|
+ wpa_s->pending_action_tx);
|
|
|
|
+ wpa_hexdump_buf(MSG_MSGDUMP, "Pending TX frame",
|
|
|
|
+ wpa_s->pending_action_tx);
|
|
wpabuf_free(wpa_s->pending_action_tx);
|
|
wpabuf_free(wpa_s->pending_action_tx);
|
|
}
|
|
}
|
|
wpa_s->pending_action_tx_done = 0;
|
|
wpa_s->pending_action_tx_done = 0;
|
|
@@ -268,6 +276,12 @@ int offchannel_send_action(struct wpa_supplicant *wpa_s, unsigned int freq,
|
|
os_memcpy(wpa_s->pending_action_bssid, bssid, ETH_ALEN);
|
|
os_memcpy(wpa_s->pending_action_bssid, bssid, ETH_ALEN);
|
|
wpa_s->pending_action_freq = freq;
|
|
wpa_s->pending_action_freq = freq;
|
|
wpa_s->pending_action_no_cck = no_cck;
|
|
wpa_s->pending_action_no_cck = no_cck;
|
|
|
|
+ wpa_printf(MSG_DEBUG,
|
|
|
|
+ "Off-channel: Stored pending action frame (dst=" MACSTR
|
|
|
|
+ " pending_action_tx=%p)",
|
|
|
|
+ MAC2STR(dst), wpa_s->pending_action_tx);
|
|
|
|
+ wpa_hexdump_buf(MSG_MSGDUMP, "Pending TX frame",
|
|
|
|
+ wpa_s->pending_action_tx);
|
|
|
|
|
|
if (freq != 0 && wpa_s->drv_flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX) {
|
|
if (freq != 0 && wpa_s->drv_flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX) {
|
|
struct wpa_supplicant *iface;
|
|
struct wpa_supplicant *iface;
|
|
@@ -428,6 +442,9 @@ const void * offchannel_pending_action_tx(struct wpa_supplicant *wpa_s)
|
|
*/
|
|
*/
|
|
void offchannel_clear_pending_action_tx(struct wpa_supplicant *wpa_s)
|
|
void offchannel_clear_pending_action_tx(struct wpa_supplicant *wpa_s)
|
|
{
|
|
{
|
|
|
|
+ wpa_printf(MSG_DEBUG,
|
|
|
|
+ "Off-channel: Clear pending Action frame TX (pending_action_tx=%p",
|
|
|
|
+ wpa_s->pending_action_tx);
|
|
wpabuf_free(wpa_s->pending_action_tx);
|
|
wpabuf_free(wpa_s->pending_action_tx);
|
|
wpa_s->pending_action_tx = NULL;
|
|
wpa_s->pending_action_tx = NULL;
|
|
}
|
|
}
|