From: Matt Joiner Date: Sun, 3 Apr 2016 06:37:50 +0000 (+1000) Subject: piece file storage: Don't write to completed pieces X-Git-Tag: v1.0.0~798 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=e3a74331549a3857c2cbfe092064218509b4945a;p=btrtrc.git piece file storage: Don't write to completed pieces --- diff --git a/storage/piece_file.go b/storage/piece_file.go index 95b2af0b..5656eedd 100644 --- a/storage/piece_file.go +++ b/storage/piece_file.go @@ -1,6 +1,7 @@ package storage import ( + "errors" "io" "os" "path" @@ -96,6 +97,10 @@ func (me pieceFileTorrentStoragePiece) ReadAt(b []byte, off int64) (n int, err e } func (me pieceFileTorrentStoragePiece) WriteAt(b []byte, off int64) (n int, err error) { + if me.GetIsComplete() { + err = errors.New("piece completed") + return + } f, err := me.fs.OpenFile(me.incompletePath(), os.O_WRONLY|os.O_CREATE) if err != nil { return