diff --git a/peerconn.go b/peerconn.go index 003e32c5..8efa343f 100644 --- a/peerconn.go +++ b/peerconn.go @@ -1107,7 +1107,9 @@ func (c *PeerConn) mainReadLoop() (err error) { c.peerChoking = true // We can now reset our interest. I think we do this after setting the flag in case the // peerImpl updates synchronously (webseeds?). - c.updateRequests("choked") + if !c.actualRequestState.Requests.IsEmpty() { + c.updateRequests("choked") + } c.updateExpectingChunks() case pp.Unchoke: if !c.peerChoking { @@ -1133,7 +1135,9 @@ func (c *PeerConn) mainReadLoop() (err error) { c.fastEnabled()) torrent.Add("requestsPreservedThroughChoking", int64(preservedCount)) } - c.updateRequests("unchoked") + if !c.t._pendingPieces.IsEmpty() { + c.updateRequests("unchoked") + } c.updateExpectingChunks() case pp.Interested: c.peerInterested = true