]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Rebuke webseed peers for a minute on bad responses
authorMatt Joiner <anacrolix@gmail.com>
Thu, 14 Aug 2025 02:45:51 +0000 (12:45 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Thu, 14 Aug 2025 02:45:51 +0000 (12:45 +1000)
webseed-peer.go

index cbeac41c3f76238adbe79e8c614f117f4d445ce8..beb3d0a8d4d70fc4f711479d264cee870175a503 100644 (file)
@@ -317,6 +317,12 @@ func (ws *webseedPeer) readChunks(wr *webseedRequest) (err error) {
                        fmt.Printf("webseed read %v after cancellation: %v\n", n, err)
                }
                if err != nil {
+                       // TODO: Pick out missing files or associate error with file. See also
+                       // webseed.ReadRequestPartError.
+                       var badResponse webseed.ErrBadResponse
+                       if errors.As(err, &badResponse) {
+                               ws.convict(badResponse, time.Minute)
+                       }
                        err = fmt.Errorf("reading chunk: %w", err)
                        return
                }