P2P: Move p2p_long_listen into struct wpa_global
This variable is not specific to any P2P group interface and since it was already used through global->p2p_init_wpa_s, it is cleaner to simply move this to the global structure so that there is a single variable instead of per-interface variables and need to pick the correct interface. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
99eb150deb
commit
b7bb2c0204
3 changed files with 18 additions and 18 deletions
|
@ -226,10 +226,10 @@ void offchannel_send_action_tx_status(
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_P2P
|
#ifdef CONFIG_P2P
|
||||||
if (wpa_s->p2p_long_listen > 0) {
|
if (wpa_s->global->p2p_long_listen > 0) {
|
||||||
/* Continue the listen */
|
/* Continue the listen */
|
||||||
wpa_printf(MSG_DEBUG, "P2P: Continuing long Listen state");
|
wpa_printf(MSG_DEBUG, "P2P: Continuing long Listen state");
|
||||||
wpas_p2p_listen_start(wpa_s, wpa_s->p2p_long_listen);
|
wpas_p2p_listen_start(wpa_s, wpa_s->global->p2p_long_listen);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_P2P */
|
#endif /* CONFIG_P2P */
|
||||||
}
|
}
|
||||||
|
|
|
@ -2422,7 +2422,7 @@ static void wpas_go_neg_completed(void *ctx, struct p2p_go_neg_results *res)
|
||||||
wpas_start_wps_enrollee(group_wpa_s, res);
|
wpas_start_wps_enrollee(group_wpa_s, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
wpa_s->global->p2p_init_wpa_s->p2p_long_listen = 0;
|
wpa_s->global->p2p_long_listen = 0;
|
||||||
eloop_cancel_timeout(wpas_p2p_long_listen_timeout, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_long_listen_timeout, wpa_s, NULL);
|
||||||
|
|
||||||
eloop_cancel_timeout(wpas_p2p_group_formation_timeout, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_group_formation_timeout, wpa_s, NULL);
|
||||||
|
@ -4750,8 +4750,7 @@ void wpas_p2p_deinit(struct wpa_supplicant *wpa_s)
|
||||||
eloop_cancel_timeout(wpas_p2p_psk_failure_removal, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_psk_failure_removal, wpa_s, NULL);
|
||||||
eloop_cancel_timeout(wpas_p2p_group_formation_timeout, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_group_formation_timeout, wpa_s, NULL);
|
||||||
eloop_cancel_timeout(wpas_p2p_join_scan, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_join_scan, wpa_s, NULL);
|
||||||
if (wpa_s->global->p2p_init_wpa_s)
|
wpa_s->global->p2p_long_listen = 0;
|
||||||
wpa_s->global->p2p_init_wpa_s->p2p_long_listen = 0;
|
|
||||||
eloop_cancel_timeout(wpas_p2p_long_listen_timeout, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_long_listen_timeout, wpa_s, NULL);
|
||||||
eloop_cancel_timeout(wpas_p2p_group_idle_timeout, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_group_idle_timeout, wpa_s, NULL);
|
||||||
wpas_p2p_remove_pending_group_interface(wpa_s);
|
wpas_p2p_remove_pending_group_interface(wpa_s);
|
||||||
|
@ -5636,7 +5635,7 @@ int wpas_p2p_connect(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
|
||||||
go_intent = wpa_s->conf->p2p_go_intent;
|
go_intent = wpa_s->conf->p2p_go_intent;
|
||||||
|
|
||||||
if (!auth)
|
if (!auth)
|
||||||
wpa_s->global->p2p_init_wpa_s->p2p_long_listen = 0;
|
wpa_s->global->p2p_long_listen = 0;
|
||||||
|
|
||||||
wpa_s->p2p_wps_method = wps_method;
|
wpa_s->p2p_wps_method = wps_method;
|
||||||
wpa_s->p2p_persistent_group = !!persistent_group;
|
wpa_s->p2p_persistent_group = !!persistent_group;
|
||||||
|
@ -5806,19 +5805,20 @@ void wpas_p2p_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s,
|
||||||
{
|
{
|
||||||
wpa_printf(MSG_DEBUG, "P2P: Cancel remain-on-channel callback "
|
wpa_printf(MSG_DEBUG, "P2P: Cancel remain-on-channel callback "
|
||||||
"(p2p_long_listen=%d ms pending_action_tx=%p)",
|
"(p2p_long_listen=%d ms pending_action_tx=%p)",
|
||||||
wpa_s->p2p_long_listen, offchannel_pending_action_tx(wpa_s));
|
wpa_s->global->p2p_long_listen,
|
||||||
|
offchannel_pending_action_tx(wpa_s));
|
||||||
wpas_p2p_listen_work_done(wpa_s);
|
wpas_p2p_listen_work_done(wpa_s);
|
||||||
if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
|
if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
|
||||||
return;
|
return;
|
||||||
if (wpa_s->p2p_long_listen > 0)
|
if (wpa_s->global->p2p_long_listen > 0)
|
||||||
wpa_s->p2p_long_listen -= wpa_s->max_remain_on_chan;
|
wpa_s->global->p2p_long_listen -= wpa_s->max_remain_on_chan;
|
||||||
if (p2p_listen_end(wpa_s->global->p2p, freq) > 0)
|
if (p2p_listen_end(wpa_s->global->p2p, freq) > 0)
|
||||||
return; /* P2P module started a new operation */
|
return; /* P2P module started a new operation */
|
||||||
if (offchannel_pending_action_tx(wpa_s))
|
if (offchannel_pending_action_tx(wpa_s))
|
||||||
return;
|
return;
|
||||||
if (wpa_s->p2p_long_listen > 0) {
|
if (wpa_s->global->p2p_long_listen > 0) {
|
||||||
wpa_printf(MSG_DEBUG, "P2P: Continuing long Listen state");
|
wpa_printf(MSG_DEBUG, "P2P: Continuing long Listen state");
|
||||||
wpas_p2p_listen_start(wpa_s, wpa_s->p2p_long_listen);
|
wpas_p2p_listen_start(wpa_s, wpa_s->global->p2p_long_listen);
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* When listen duration is over, stop listen & update p2p_state
|
* When listen duration is over, stop listen & update p2p_state
|
||||||
|
@ -6953,7 +6953,7 @@ int wpas_p2p_find(struct wpa_supplicant *wpa_s, unsigned int timeout,
|
||||||
u8 seek_cnt, const char **seek_string, int freq)
|
u8 seek_cnt, const char **seek_string, int freq)
|
||||||
{
|
{
|
||||||
wpas_p2p_clear_pending_action_tx(wpa_s);
|
wpas_p2p_clear_pending_action_tx(wpa_s);
|
||||||
wpa_s->global->p2p_init_wpa_s->p2p_long_listen = 0;
|
wpa_s->global->p2p_long_listen = 0;
|
||||||
|
|
||||||
if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL ||
|
if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL ||
|
||||||
wpa_s->p2p_in_provisioning) {
|
wpa_s->p2p_in_provisioning) {
|
||||||
|
@ -6998,7 +6998,7 @@ static void wpas_p2p_scan_res_ignore_search(struct wpa_supplicant *wpa_s,
|
||||||
static void wpas_p2p_stop_find_oper(struct wpa_supplicant *wpa_s)
|
static void wpas_p2p_stop_find_oper(struct wpa_supplicant *wpa_s)
|
||||||
{
|
{
|
||||||
wpas_p2p_clear_pending_action_tx(wpa_s);
|
wpas_p2p_clear_pending_action_tx(wpa_s);
|
||||||
wpa_s->global->p2p_init_wpa_s->p2p_long_listen = 0;
|
wpa_s->global->p2p_long_listen = 0;
|
||||||
eloop_cancel_timeout(wpas_p2p_long_listen_timeout, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_long_listen_timeout, wpa_s, NULL);
|
||||||
eloop_cancel_timeout(wpas_p2p_join_scan, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_join_scan, wpa_s, NULL);
|
||||||
|
|
||||||
|
@ -7024,7 +7024,7 @@ void wpas_p2p_stop_find(struct wpa_supplicant *wpa_s)
|
||||||
static void wpas_p2p_long_listen_timeout(void *eloop_ctx, void *timeout_ctx)
|
static void wpas_p2p_long_listen_timeout(void *eloop_ctx, void *timeout_ctx)
|
||||||
{
|
{
|
||||||
struct wpa_supplicant *wpa_s = eloop_ctx;
|
struct wpa_supplicant *wpa_s = eloop_ctx;
|
||||||
wpa_s->global->p2p_init_wpa_s->p2p_long_listen = 0;
|
wpa_s->global->p2p_long_listen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -7053,7 +7053,7 @@ int wpas_p2p_listen(struct wpa_supplicant *wpa_s, unsigned int timeout)
|
||||||
timeout = 3600;
|
timeout = 3600;
|
||||||
}
|
}
|
||||||
eloop_cancel_timeout(wpas_p2p_long_listen_timeout, wpa_s, NULL);
|
eloop_cancel_timeout(wpas_p2p_long_listen_timeout, wpa_s, NULL);
|
||||||
wpa_s->global->p2p_init_wpa_s->p2p_long_listen = 0;
|
wpa_s->global->p2p_long_listen = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Stop previous find/listen operation to avoid trying to request a new
|
* Stop previous find/listen operation to avoid trying to request a new
|
||||||
|
@ -7065,7 +7065,7 @@ int wpas_p2p_listen(struct wpa_supplicant *wpa_s, unsigned int timeout)
|
||||||
|
|
||||||
res = wpas_p2p_listen_start(wpa_s, timeout * 1000);
|
res = wpas_p2p_listen_start(wpa_s, timeout * 1000);
|
||||||
if (res == 0 && timeout * 1000 > wpa_s->max_remain_on_chan) {
|
if (res == 0 && timeout * 1000 > wpa_s->max_remain_on_chan) {
|
||||||
wpa_s->global->p2p_init_wpa_s->p2p_long_listen = timeout * 1000;
|
wpa_s->global->p2p_long_listen = timeout * 1000;
|
||||||
eloop_register_timeout(timeout, 0,
|
eloop_register_timeout(timeout, 0,
|
||||||
wpas_p2p_long_listen_timeout,
|
wpas_p2p_long_listen_timeout,
|
||||||
wpa_s, NULL);
|
wpa_s, NULL);
|
||||||
|
@ -7172,7 +7172,7 @@ static void wpas_p2p_group_deinit(struct wpa_supplicant *wpa_s)
|
||||||
|
|
||||||
int wpas_p2p_reject(struct wpa_supplicant *wpa_s, const u8 *addr)
|
int wpas_p2p_reject(struct wpa_supplicant *wpa_s, const u8 *addr)
|
||||||
{
|
{
|
||||||
wpa_s->global->p2p_init_wpa_s->p2p_long_listen = 0;
|
wpa_s->global->p2p_long_listen = 0;
|
||||||
|
|
||||||
if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
|
if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -283,6 +283,7 @@ struct wpa_global {
|
||||||
struct dl_list p2p_srv_upnp; /* struct p2p_srv_upnp */
|
struct dl_list p2p_srv_upnp; /* struct p2p_srv_upnp */
|
||||||
int p2p_disabled;
|
int p2p_disabled;
|
||||||
int cross_connection;
|
int cross_connection;
|
||||||
|
int p2p_long_listen; /* remaining time in long Listen state in ms */
|
||||||
struct wpa_freq_range_list p2p_disallow_freq;
|
struct wpa_freq_range_list p2p_disallow_freq;
|
||||||
struct wpa_freq_range_list p2p_go_avoid_freq;
|
struct wpa_freq_range_list p2p_go_avoid_freq;
|
||||||
enum wpa_conc_pref {
|
enum wpa_conc_pref {
|
||||||
|
@ -890,7 +891,6 @@ struct wpa_supplicant {
|
||||||
P2P_GROUP_INTERFACE_CLIENT
|
P2P_GROUP_INTERFACE_CLIENT
|
||||||
} p2p_group_interface;
|
} p2p_group_interface;
|
||||||
struct p2p_group *p2p_group;
|
struct p2p_group *p2p_group;
|
||||||
int p2p_long_listen; /* remaining time in long Listen state in ms */
|
|
||||||
char p2p_pin[10];
|
char p2p_pin[10];
|
||||||
int p2p_wps_method;
|
int p2p_wps_method;
|
||||||
u8 p2p_auth_invite[ETH_ALEN];
|
u8 p2p_auth_invite[ETH_ALEN];
|
||||||
|
|
Loading…
Reference in a new issue