]> Sergey Matveev's repositories - btrtrc.git/blobdiff - fs/filenode.go
fs: Use a new torrent file reader per handled request
[btrtrc.git] / fs / filenode.go
index db8507559c900c8fd42ad476e35805bf3967870c..28a433e18d086d29f97941ff507370d8afa37d69 100644 (file)
@@ -1,31 +1,27 @@
 package torrentfs
 
 import (
-       "io"
+       "context"
 
-       "bazil.org/fuse"
-       fusefs "bazil.org/fuse/fs"
-       "golang.org/x/net/context"
+       "github.com/anacrolix/fuse"
+       fusefs "github.com/anacrolix/fuse/fs"
+
+       "github.com/anacrolix/torrent"
 )
 
 type fileNode struct {
        node
-       size          uint64
-       TorrentOffset int64
+       f *torrent.File
 }
 
-var (
-       _ fusefs.NodeOpener = fileNode{}
-)
+var _ fusefs.NodeOpener = fileNode{}
 
 func (fn fileNode) Attr(ctx context.Context, attr *fuse.Attr) error {
-       attr.Size = fn.size
+       attr.Size = uint64(fn.f.Length())
        attr.Mode = defaultMode
        return nil
 }
 
 func (fn fileNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fusefs.Handle, error) {
-       r := fn.t.NewReader()
-       r.Seek(fn.TorrentOffset, io.SeekStart)
-       return fileHandle{fn, r}, nil
+       return fileHandle{fn, fn.f}, nil
 }