aboutsummaryrefslogtreecommitdiffstats
path: root/src/p2p/p2p.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/p2p/p2p.c')
-rw-r--r--src/p2p/p2p.c46
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);