]> Sergey Matveev's repositories - btrtrc.git/blobdiff - peerconn.go
Disable data downloading on storage write errors
[btrtrc.git] / peerconn.go
index 9ff1a693c231d4a6ecef0a6f0ebe7889b2dc420a..ee5cdfd986216ee2509098a4d7ea6c496c969cd3 100644 (file)
@@ -509,7 +509,7 @@ func (cn *PeerConn) request(r request, mw messageWriter) bool {
 }
 
 func (cn *PeerConn) fillWriteBuffer(msg func(pp.Message) bool) {
-       if !cn.t.networkingEnabled {
+       if !cn.t.networkingEnabled || cn.t.dataDownloadDisallowed {
                if !cn.setInterested(false, msg) {
                        return
                }
@@ -1246,9 +1246,10 @@ func (c *PeerConn) receiveChunk(msg *pp.Message) error {
        piece.decrementPendingWrites()
 
        if err != nil {
-               panic(fmt.Sprintf("error writing chunk: %v", err))
+               c.logger.Printf("error writing received chunk %v: %v", req, err)
                t.pendRequest(req)
-               t.updatePieceCompletion(pieceIndex(msg.Index))
+               //t.updatePieceCompletion(pieceIndex(msg.Index))
+               t.onWriteChunkErr(err)
                return nil
        }