From faad18e3681764853dd0a9e2a59d655e6c866b0f Mon Sep 17 00:00:00 2001 From: Richard Nyberg Date: Sat, 24 Sep 2005 18:59:24 +0000 Subject: [PATCH] In the transition to end game it's likely that we'll send an uniterest message followed by an interest message. Optimize this but not sending those messages in that case. This is better becasue we don't risk to trigger a choke from the receiving peer. --- btpd/peer.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/btpd/peer.c b/btpd/peer.c index 71bcd64..e3e2d74 100644 --- a/btpd/peer.c +++ b/btpd/peer.c @@ -180,8 +180,13 @@ peer_want(struct peer *p, uint32_t index) assert(p->nwant < p->npieces); p->nwant++; if (p->nwant == 1) { + int unsent = 0; + struct nb_link *nl = BTPDQ_LAST(&p->outq, nb_tq); + if (nl != NULL && nl->nb->type == NB_UNINTEREST) + unsent = peer_unsend(p, nl); + if (!unsent) + peer_send(p, btpd.interest_msg); p->flags |= PF_I_WANT; - peer_send(p, btpd.interest_msg); } }