mirror of
https://github.com/ipfs/kubo.git
synced 2025-07-02 03:28:25 +08:00
implements check and fixed argument ordering
This commit is contained in:
@ -360,7 +360,7 @@ func (s *Node) Read(req *fuse.ReadRequest, resp *fuse.ReadResponse, ctx context.
|
||||
return err // may be non-nil / not succeeded
|
||||
}
|
||||
|
||||
func (n *Node) Write(req *fuse.WriteRequest, resp *fuse.WriteResponse, ctx context.Context) error {
|
||||
func (n *Node) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error {
|
||||
// log.Debugf("ipns: Node Write [%s]: flags = %s, offset = %d, size = %d", n.name, req.Flags.String(), req.Offset, len(req.Data))
|
||||
if IpnsReadonly {
|
||||
log.Debug("Attempted to write on readonly ipns filesystem.")
|
||||
@ -383,7 +383,7 @@ func (n *Node) Write(req *fuse.WriteRequest, resp *fuse.WriteResponse, ctx conte
|
||||
return nil
|
||||
}
|
||||
|
||||
func (n *Node) Flush(req *fuse.FlushRequest, ctx context.Context) error {
|
||||
func (n *Node) Flush(ctx context.Context, req *fuse.FlushRequest) error {
|
||||
if IpnsReadonly {
|
||||
return nil
|
||||
}
|
||||
@ -470,11 +470,11 @@ func (n *Node) republishRoot() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (n *Node) Fsync(req *fuse.FsyncRequest, ctx context.Context) error {
|
||||
func (n *Node) Fsync(ctx context.Context, req *fuse.FsyncRequest) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (n *Node) Mkdir(req *fuse.MkdirRequest, ctx context.Context) (fs.Node, error) {
|
||||
func (n *Node) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error) {
|
||||
if IpnsReadonly {
|
||||
return nil, fuse.EPERM
|
||||
}
|
||||
@ -508,7 +508,7 @@ func (n *Node) Mkdir(req *fuse.MkdirRequest, ctx context.Context) (fs.Node, erro
|
||||
return child, nil
|
||||
}
|
||||
|
||||
func (n *Node) Open(req *fuse.OpenRequest, resp *fuse.OpenResponse, ctx context.Context) (fs.Handle, error) {
|
||||
func (n *Node) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error) {
|
||||
//log.Debug("[%s] Received open request! flags = %s", n.name, req.Flags.String())
|
||||
//TODO: check open flags and truncate if necessary
|
||||
if req.Flags&fuse.OpenTruncate != 0 {
|
||||
@ -521,11 +521,11 @@ func (n *Node) Open(req *fuse.OpenRequest, resp *fuse.OpenResponse, ctx context.
|
||||
return n, nil
|
||||
}
|
||||
|
||||
func (n *Node) Mknod(req *fuse.MknodRequest, ctx context.Context) (fs.Node, error) {
|
||||
func (n *Node) Mknod(ctx context.Context, req *fuse.MknodRequest) (fs.Node, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (n *Node) Create(req *fuse.CreateRequest, resp *fuse.CreateResponse, ctx context.Context) (fs.Node, fs.Handle, error) {
|
||||
func (n *Node) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (fs.Node, fs.Handle, error) {
|
||||
if IpnsReadonly {
|
||||
log.Debug("Attempted to call Create on a readonly filesystem.")
|
||||
return nil, nil, fuse.EPERM
|
||||
@ -555,7 +555,7 @@ func (n *Node) Create(req *fuse.CreateRequest, resp *fuse.CreateResponse, ctx co
|
||||
return child, child, nil
|
||||
}
|
||||
|
||||
func (n *Node) Remove(req *fuse.RemoveRequest, ctx context.Context) error {
|
||||
func (n *Node) Remove(ctx context.Context, req *fuse.RemoveRequest) error {
|
||||
if IpnsReadonly {
|
||||
return fuse.EPERM
|
||||
}
|
||||
@ -578,7 +578,7 @@ func (n *Node) Remove(req *fuse.RemoveRequest, ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (n *Node) Rename(req *fuse.RenameRequest, newDir fs.Node, ctx context.Context) error {
|
||||
func (n *Node) Rename(ctx context.Context, req *fuse.RenameRequest, newDir fs.Node) error {
|
||||
if IpnsReadonly {
|
||||
log.Debug("Attempted to call Rename on a readonly filesystem.")
|
||||
return fuse.EPERM
|
||||
@ -625,3 +625,19 @@ func (n *Node) update(name string, newnode *mdag.Node) error {
|
||||
n.Nd = nnode
|
||||
return nil
|
||||
}
|
||||
|
||||
// to check that out Node implements all the interfaces we want
|
||||
type ipnsNode interface {
|
||||
fs.Node
|
||||
fs.HandleWriter
|
||||
fs.HandleFlusher
|
||||
fs.NodeFsyncer
|
||||
fs.NodeMkdirer
|
||||
fs.NodeOpener
|
||||
fs.NodeMknoder
|
||||
fs.NodeCreater
|
||||
fs.NodeRemover
|
||||
fs.NodeRenamer
|
||||
}
|
||||
|
||||
var _ ipnsNode = (*Node)(nil)
|
||||
|
@ -50,7 +50,7 @@ func (*Root) Attr() fuse.Attr {
|
||||
}
|
||||
|
||||
// Lookup performs a lookup under this node.
|
||||
func (s *Root) Lookup(name string, ctx context.Context) (fs.Node, error) {
|
||||
func (s *Root) Lookup(ctx context.Context, name string) (fs.Node, error) {
|
||||
log.Debugf("Root Lookup: '%s'", name)
|
||||
switch name {
|
||||
case "mach_kernel", ".hidden", "._.":
|
||||
@ -116,7 +116,7 @@ func (s *Node) Attr() fuse.Attr {
|
||||
}
|
||||
|
||||
// Lookup performs a lookup under this node.
|
||||
func (s *Node) Lookup(name string, ctx context.Context) (fs.Node, error) {
|
||||
func (s *Node) Lookup(ctx context.Context, name string) (fs.Node, error) {
|
||||
log.Debugf("Lookup '%s'", name)
|
||||
nodes, err := s.Ipfs.Resolver.ResolveLinks(s.Nd, []string{name})
|
||||
if err != nil {
|
||||
@ -145,7 +145,7 @@ func (s *Node) ReadDir(ctx context.Context) ([]fuse.Dirent, error) {
|
||||
return nil, fuse.ENOENT
|
||||
}
|
||||
|
||||
func (s *Node) Read(req *fuse.ReadRequest, resp *fuse.ReadResponse, ctx context.Context) error {
|
||||
func (s *Node) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error {
|
||||
|
||||
k, err := s.Nd.Key()
|
||||
if err != nil {
|
||||
@ -178,3 +178,12 @@ func (s *Node) Read(req *fuse.ReadRequest, resp *fuse.ReadResponse, ctx context.
|
||||
lm["res_size"] = n
|
||||
return nil // may be non-nil / not succeeded
|
||||
}
|
||||
|
||||
// to check that out Node implements all the interfaces we want
|
||||
type roNode interface {
|
||||
fs.Node
|
||||
fs.NodeStringLookuper
|
||||
fs.HandleReader
|
||||
}
|
||||
|
||||
var _ roNode = (*Node)(nil)
|
||||
|
Reference in New Issue
Block a user