From: Matt Joiner Date: Fri, 23 Oct 2015 01:45:11 +0000 (+1100) Subject: data/pieceStore: Expose flags in Open method X-Git-Tag: v1.0.0~1004 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=4c4eae20a29687f3d61724ed6a57a6ec14f27c5c;p=btrtrc.git data/pieceStore: Expose flags in Open method --- diff --git a/data/pieceStore/dataBackend/fileCache/backend.go b/data/pieceStore/dataBackend/fileCache/backend.go index 701ae4aa..fc0be32d 100644 --- a/data/pieceStore/dataBackend/fileCache/backend.go +++ b/data/pieceStore/dataBackend/fileCache/backend.go @@ -39,8 +39,8 @@ func (me *backend) GetLength(path string) (ret int64, err error) { return } -func (me *backend) Open(path string) (ret dataBackend.File, err error) { - ret, err = me.c.OpenFile(path, os.O_RDWR|os.O_CREATE) +func (me *backend) Open(path string, flag int) (ret dataBackend.File, err error) { + ret, err = me.c.OpenFile(path, flag) return } diff --git a/data/pieceStore/dataBackend/http/backend.go b/data/pieceStore/dataBackend/http/backend.go index 85fc7840..91acf3a5 100644 --- a/data/pieceStore/dataBackend/http/backend.go +++ b/data/pieceStore/dataBackend/http/backend.go @@ -52,8 +52,8 @@ func (me *backend) GetLength(path string) (ret int64, err error) { return } -func (me *backend) Open(path string) (ret dataBackend.File, err error) { - ret = httpfile.Open(me.urlStr(path)) +func (me *backend) Open(path string, flag int) (ret dataBackend.File, err error) { + ret = httpfile.Open(me.urlStr(path), flag) err = fixErrNotFound(err) return } diff --git a/data/pieceStore/dataBackend/i.go b/data/pieceStore/dataBackend/i.go index 6b5beb9c..106bea80 100644 --- a/data/pieceStore/dataBackend/i.go +++ b/data/pieceStore/dataBackend/i.go @@ -8,7 +8,7 @@ import ( // All functions must return ErrNotFound as required. type I interface { GetLength(path string) (int64, error) - Open(path string) (File, error) + Open(path string, flags int) (File, error) OpenSection(path string, off, n int64) (io.ReadCloser, error) Delete(path string) error } @@ -19,4 +19,5 @@ type File interface { io.Closer io.Seeker io.Writer + io.Reader } diff --git a/data/pieceStore/store.go b/data/pieceStore/store.go index 3b1970fe..c73cd785 100644 --- a/data/pieceStore/store.go +++ b/data/pieceStore/store.go @@ -141,7 +141,7 @@ func (me *store) pieceWriteAt(p metainfo.Piece, b []byte, off int64) (n int, err defer func() { <-me.requestPool }() - f, err := me.db.Open(me.incompletePiecePath(p)) + f, err := me.db.Open(me.incompletePiecePath(p), os.O_WRONLY|os.O_CREATE) if err != nil { return } @@ -264,7 +264,7 @@ func (me *store) hashCopyFile(from, to string, n int64) (hash []byte, err error) defer src.Close() hasher := sha1.New() tee := io.TeeReader(src, hasher) - dest, err := me.db.Open(to) + dest, err := me.db.Open(to, os.O_WRONLY|os.O_CREATE) if err != nil { return }