From 93053ce34a3480fc38b98ce0b989938a3ff955c6 Mon Sep 17 00:00:00 2001 From: Richard Nyberg <rnyberg@murmeldjur.se> Date: Sat, 8 Oct 2005 10:00:30 +0000 Subject: [PATCH] Remove unsent requests from the write queue when we receive a choke. --- btpd/peer.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/btpd/peer.c b/btpd/peer.c index 0cfbc0a..deb1af3 100644 --- a/btpd/peer.c +++ b/btpd/peer.c @@ -335,6 +335,13 @@ peer_on_choke(struct peer *p) else { p->flags |= PF_P_CHOKE; cm_on_choke(p); + struct nb_link *nl = BTPDQ_FIRST(&p->outq); + while (nl != NULL) { + struct nb_link *next = BTPDQ_NEXT(nl, entry); + if (nl->nb->type == NB_REQUEST) + peer_unsend(p, nl); + nl = next; + } } }