]> Sergey Matveev's repositories - btrtrc.git/blob - fs/filenode.go
Another use of LoopbackListenhost
[btrtrc.git] / fs / filenode.go
1 package torrentfs
2
3 import (
4         "context"
5
6         "bazil.org/fuse"
7         fusefs "bazil.org/fuse/fs"
8
9         "github.com/anacrolix/torrent"
10 )
11
12 type fileNode struct {
13         node
14         f *torrent.File
15 }
16
17 var (
18         _ fusefs.NodeOpener = fileNode{}
19 )
20
21 func (fn fileNode) Attr(ctx context.Context, attr *fuse.Attr) error {
22         attr.Size = uint64(fn.f.Length())
23         attr.Mode = defaultMode
24         return nil
25 }
26
27 func (fn fileNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fusefs.Handle, error) {
28         r := fn.f.NewReader()
29         return fileHandle{fn, r}, nil
30 }