Increment webseed peer piece availability

This commit is contained in:
Matt Joiner 2021-11-12 13:41:55 +11:00
parent 09d9a070e9
commit a7dff20e3f
2 changed files with 8 additions and 1 deletions

View File

@ -36,6 +36,12 @@ func (ws *webseedPeer) String() string {
func (ws *webseedPeer) onGotInfo(info *metainfo.Info) {
ws.client.SetInfo(info)
// There should be probably be a callback in Client instead, so it can remove pieces at its whim
// too.
ws.client.Pieces.Iterate(func(x uint32) bool {
ws.peer.t.incPieceAvailability(pieceIndex(x))
return true
})
}
func (ws *webseedPeer) writeInterested(interested bool) bool {

View File

@ -44,7 +44,8 @@ type Client struct {
info *metainfo.Info
// The pieces we can request with the Url. We're more likely to ban/block at the file-level
// given that's how requests are mapped to webseeds, but the torrent.Client works at the piece
// level. We can map our file-level adjustments to the pieces here.
// level. We can map our file-level adjustments to the pieces here. This probably need to be
// private in the future, if Client ever starts removing pieces.
Pieces roaring.Bitmap
}