Add a note about dropping connections that we sent a HAVE for incomplete pieces

This commit is contained in:
Matt Joiner 2016-11-23 11:52:41 +11:00
parent 4807c9e29a
commit 57b679ffb0
2 changed files with 18 additions and 0 deletions

View File

@ -1060,3 +1060,11 @@ another:
}
c.Choke()
}
func (cn *connection) Drop() {
cn.t.dropConnection(cn)
}
func (cn *connection) sentHave(piece int) bool {
return piece < len(cn.sentHaves) && cn.sentHaves[piece]
}

View File

@ -1469,6 +1469,16 @@ func (t *Torrent) onIncompletePiece(piece int) {
if !t.wantPieceIndex(piece) {
return
}
// We could drop any connections that we told we have a piece that we
// don't here. But there's a test failure, and it seems clients don't care
// if you request pieces that you already claim to have. Pruning bad
// connections might just remove any connections that aren't treating us
// favourably anyway.
// for c := range t.conns {
// if c.sentHave(piece) {
// c.Drop()
// }
// }
for conn := range t.conns {
if conn.PeerHasPiece(piece) {
conn.updateRequests()