@@ -12,6 +12,7 @@
#include "common.h"
#include "utils/eloop.h"
#include "wpa_supplicant_i.h"
+#include "p2p_supplicant.h"
#include "driver_i.h"
#include "offchannel.h"
@@ -188,6 +189,12 @@ void offchannel_send_action_tx_status(
wpa_s->pending_action_bssid,
data, data_len, result);
}
+
+ if (wpa_s->p2p_long_listen > 0) {
+ /* Continue the listen */
+ wpa_printf(MSG_DEBUG, "P2P: Continuing long Listen state");
+ wpas_p2p_listen_start(wpa_s, wpa_s->p2p_long_listen);
+ }
}
@@ -4925,7 +4925,7 @@ void wpas_p2p_remain_on_channel_cb(struct
wpa_supplicant *wpa_s,
}
-static int wpas_p2p_listen_start(struct wpa_supplicant *wpa_s,
+int wpas_p2p_listen_start(struct wpa_supplicant *wpa_s,
unsigned int timeout)
{
/* Limit maximum Listen state time based on driver limitation. */
@@ -4954,12 +4954,12 @@ void
wpas_p2p_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
wpas_p2p_listen_work_done(wpa_s);
if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
return;
+ if (wpa_s->p2p_long_listen > 0)
+ wpa_s->p2p_long_listen -= wpa_s->max_remain_on_chan;
if (p2p_listen_end(wpa_s->global->p2p, freq) > 0)
return; /* P2P module started a new operation */
if (offchannel_pending_action_tx(wpa_s))
return;
- if (wpa_s->p2p_long_listen > 0)
- wpa_s->p2p_long_listen -= wpa_s->max_remain_on_chan;
if (wpa_s->p2p_long_listen > 0) {
wpa_printf(MSG_DEBUG, "P2P: Continuing long Listen state");
wpas_p2p_listen_start(wpa_s, wpa_s->p2p_long_listen);
@@ -58,6 +58,8 @@ int wpas_p2p_find(struct wpa_supplicant *wpa_s,
unsigned int timeout,
const u8 *dev_id, unsigned int search_delay);
void wpas_p2p_stop_find(struct wpa_supplicant *wpa_s);
int wpas_p2p_listen(struct wpa_supplicant *wpa_s, unsigned int timeout);
+int wpas_p2p_listen_start(struct wpa_supplicant *wpa_s,
+ unsigned int timeout);
int wpas_p2p_assoc_req_ie(struct wpa_supplicant *wpa_s, struct wpa_bss *bss,
u8 *buf, size_t len, int p2p_group);
Hi Jouni, I overlooked a compilation failure for the previous patch after merging to the local repo (compiled without enabling CONFIG_P2P). Please find the corrected patch attached inline as well as attached. I am facing white space issue in copy-pasting the patch in-line. Is there any work around for the white space issue? I am using gmail in plain-text mode. Signed-off-by: Jithu Jance <jithu@broadcom.com> --- wpa_supplicant/offchannel.c | 7 +++++++ wpa_supplicant/p2p_supplicant.c | 6 +++--- wpa_supplicant/p2p_supplicant.h | 2 ++ 3 files changed, 12 insertions(+), 3 deletions(-) void wpas_p2p_scan_ie(struct wpa_supplicant *wpa_s, struct wpabuf *ies);