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;
+	}
     }
 }