]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Reuse pp.Message when receiving chunks from webseeds
authorMatt Joiner <anacrolix@gmail.com>
Thu, 26 Jun 2025 08:19:42 +0000 (18:19 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Thu, 26 Jun 2025 12:51:07 +0000 (22:51 +1000)
webseed-peer.go

index ed49edecbfb4650efa6d5ab0890026fd52e76c20..f40e9dbf4941742cd4a15012cc17a12dbeb519d3 100644 (file)
@@ -275,6 +275,9 @@ func (ws *webseedPeer) readChunks(wr *webseedRequest) (err error) {
        t := ws.peer.t
        buf := t.getChunkBuffer()
        defer t.putChunkBuffer(buf)
+       msg := pp.Message{
+               Type: pp.Piece,
+       }
        for wr.next < wr.end {
                reqSpec := t.requestIndexToRequest(wr.next)
                chunkLen := reqSpec.Length.Int()
@@ -287,13 +290,12 @@ func (ws *webseedPeer) readChunks(wr *webseedRequest) (err error) {
                        return
                }
                ws.peer.doChunkReadStats(int64(chunkLen))
+               // TODO: Clean up the parameters for receiveChunk.
+               msg.Piece = buf
+               msg.Index = reqSpec.Index
+               msg.Begin = reqSpec.Begin
                ws.peer.locker().Lock()
-               err = ws.peer.receiveChunk(&pp.Message{
-                       Type:  pp.Piece,
-                       Piece: buf,
-                       Index: reqSpec.Index,
-                       Begin: reqSpec.Begin,
-               })
+               err = ws.peer.receiveChunk(&msg)
                wr.next++
                ws.peer.locker().Unlock()
                if err != nil {