Message ID | 20190403151719.12165-2-andrei.otcheretianski@intel.com |
---|---|
State | Accepted |
Headers | show |
Series | nl80211: Handle NL80211_CMD_PROBE_CLIENT response | expand |
On Wed, Apr 03, 2019 at 06:17:12PM +0300, Andrei Otcheretianski wrote: > When processing the NL80211_CMD_PROBE_CLIENT command, the > nl80211 layer in the kernel sends a response containing the > cookie associated with the client probe request. This response > is not handled by driver_nl80211 when sending the command, > and is mistakenly handled as an asynchronous event. > > Fix this by reading the response as part of the sending the > command flow. Thanks, applied.
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 52cef41865..064d73fe81 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -8260,6 +8260,7 @@ static void nl80211_poll_client(void *priv, const u8 *own_addr, const u8 *addr, struct i802_bss *bss = priv; struct wpa_driver_nl80211_data *drv = bss->drv; struct nl_msg *msg; + u64 cookie; int ret; if (!drv->poll_command_supported) { @@ -8273,11 +8274,15 @@ static void nl80211_poll_client(void *priv, const u8 *own_addr, const u8 *addr, return; } - ret = send_and_recv_msgs(drv, msg, NULL, NULL); + ret = send_and_recv_msgs(drv, msg, cookie_handler, &cookie); if (ret < 0) { wpa_printf(MSG_DEBUG, "nl80211: Client probe request for " MACSTR " failed: ret=%d (%s)", MAC2STR(addr), ret, strerror(-ret)); + } else { + wpa_printf(MSG_DEBUG, + "nl80211: Client probe request cookie=%lu", + cookie); } }