From: Matt Joiner Date: Mon, 13 Dec 2021 00:56:57 +0000 (+1100) Subject: Assert that a request isn't cancelled before requesting it again X-Git-Tag: v1.39.1~3 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=47ef8d9c2d417ac5911b4b8b57de3d654159b083;p=btrtrc.git Assert that a request isn't cancelled before requesting it again --- diff --git a/peerconn.go b/peerconn.go index 098d93fc..4ec0944b 100644 --- a/peerconn.go +++ b/peerconn.go @@ -570,6 +570,9 @@ type messageWriter func(pp.Message) bool // when we want to go fast. func (cn *Peer) shouldRequest(r RequestIndex) error { pi := pieceIndex(r / cn.t.chunksPerRegularPiece()) + if cn.requestState.Cancelled.Contains(r) { + return errors.New("request is cancelled and waiting acknowledgement") + } if !cn.peerHasPiece(pi) { return errors.New("requesting piece peer doesn't have") }