diff options
Diffstat (limited to 'src/p2p/p2p.c')
-rw-r--r-- | src/p2p/p2p.c | 46 |
1 files changed, 9 insertions, 37 deletions
diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c index 2b3b1827..138ba16b 100644 --- a/src/p2p/p2p.c +++ b/src/p2p/p2p.c @@ -41,40 +41,10 @@ static void p2p_scan_timeout(void *eloop_ctx, void *timeout_ctx); * P2P_PEER_EXPIRATION_AGE - Number of seconds after which inactive peer * entries will be removed */ -#ifdef ANDROID_P2P -#define P2P_PEER_EXPIRATION_AGE 30 -#else #define P2P_PEER_EXPIRATION_AGE 300 -#endif #define P2P_PEER_EXPIRATION_INTERVAL (P2P_PEER_EXPIRATION_AGE / 2) -#ifdef ANDROID_P2P -int p2p_connection_in_progress(struct p2p_data *p2p) -{ - int ret = 0; - - switch (p2p->state) { - case P2P_CONNECT: - case P2P_CONNECT_LISTEN: - case P2P_GO_NEG: - case P2P_WAIT_PEER_CONNECT: - case P2P_WAIT_PEER_IDLE: - case P2P_PROVISIONING: - case P2P_INVITE: - case P2P_INVITE_LISTEN: - ret = 1; - break; - - default: - wpa_printf(MSG_DEBUG, "p2p_connection_in_progress state %d", p2p->state); - ret = 0; - } - - return ret; -} -#endif - static void p2p_expire_peers(struct p2p_data *p2p) { struct p2p_device *dev, *n; @@ -86,6 +56,15 @@ static void p2p_expire_peers(struct p2p_data *p2p) if (dev->last_seen.sec + P2P_PEER_EXPIRATION_AGE >= now.sec) continue; + if (dev == p2p->go_neg_peer) { + /* + * GO Negotiation is in progress with the peer, so + * don't expire the peer entry until GO Negotiation + * fails or times out. + */ + continue; + } + if (p2p->cfg->go_connected && p2p->cfg->go_connected(p2p->cfg->cb_ctx, dev->info.p2p_device_addr)) { @@ -111,13 +90,6 @@ static void p2p_expire_peers(struct p2p_data *p2p) continue; } -#ifdef ANDROID_P2P - /* If Connection is in progress, don't expire the peer - */ - if (p2p_connection_in_progress(p2p)) - continue; -#endif - p2p_dbg(p2p, "Expiring old peer entry " MACSTR, MAC2STR(dev->info.p2p_device_addr)); dl_list_del(&dev->list); |