diff options
| author | Richard Nyberg <rnyberg@murmeldjur.se> | 2005-10-08 10:00:30 +0000 |
|---|---|---|
| committer | Richard Nyberg <rnyberg@murmeldjur.se> | 2005-10-08 10:00:30 +0000 |
| commit | 93053ce34a3480fc38b98ce0b989938a3ff955c6 (patch) | |
| tree | bb5580bf1b328546fc22aa4a9ffd24e51ea89bf9 | |
| parent | a8817eee1a05bab118179ea1c13eba24cb4a4c50 (diff) | |
| download | btpd-93053ce34a3480fc38b98ce0b989938a3ff955c6.tar.gz btpd-93053ce34a3480fc38b98ce0b989938a3ff955c6.zip | |
Remove unsent requests from the write queue when we receive a choke.
| -rw-r--r-- | btpd/peer.c | 7 |
1 files changed, 7 insertions, 0 deletions
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; + } } } |