@cryptotaxi247 / kubo / commits / 335caf0bc

implements check and fixed argument ordering

Henry committed Feb 28, 2015 at 14:28 UTC 335caf0bc74f4629765d858527a044aa9fc333bb
2 files changed +37 -12
fuse/ipns/ipns_unix.go
+25 -9
@@ -360,7 +360,7 @@ func (s *Node) Read(req *fuse.ReadRequest, resp *fuse.ReadResponse, ctx context.
360 return err // may be non-nil / not succeeded
361 }
362
363 -func (n *Node) Write(req *fuse.WriteRequest, resp *fuse.WriteResponse, ctx context.Context) error {
363 +func (n *Node) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error {
364 // log.Debugf("ipns: Node Write [%s]: flags = %s, offset = %d, size = %d", n.name, req.Flags.String(), req.Offset, len(req.Data))
365 if IpnsReadonly {
366 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
383 return nil
384 }
385
386 -func (n *Node) Flush(req *fuse.FlushRequest, ctx context.Context) error {
386 +func (n *Node) Flush(ctx context.Context, req *fuse.FlushRequest) error {
387 if IpnsReadonly {
388 return nil
389 }
@@ -470,11 +470,11 @@ func (n *Node) republishRoot() error {
470 return nil
471 }
472
473 -func (n *Node) Fsync(req *fuse.FsyncRequest, ctx context.Context) error {
473 +func (n *Node) Fsync(ctx context.Context, req *fuse.FsyncRequest) error {
474 return nil
475 }
476
477 -func (n *Node) Mkdir(req *fuse.MkdirRequest, ctx context.Context) (fs.Node, error) {
477 +func (n *Node) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error) {
478 if IpnsReadonly {
479 return nil, fuse.EPERM
480 }
@@ -508,7 +508,7 @@ func (n *Node) Mkdir(req *fuse.MkdirRequest, ctx context.Context) (fs.Node, erro
508 return child, nil
509 }
510
511 -func (n *Node) Open(req *fuse.OpenRequest, resp *fuse.OpenResponse, ctx context.Context) (fs.Handle, error) {
511 +func (n *Node) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error) {
512 //log.Debug("[%s] Received open request! flags = %s", n.name, req.Flags.String())
513 //TODO: check open flags and truncate if necessary
514 if req.Flags&fuse.OpenTruncate != 0 {
@@ -521,11 +521,11 @@ func (n *Node) Open(req *fuse.OpenRequest, resp *fuse.OpenResponse, ctx context.
521 return n, nil
522 }
523
524 -func (n *Node) Mknod(req *fuse.MknodRequest, ctx context.Context) (fs.Node, error) {
524 +func (n *Node) Mknod(ctx context.Context, req *fuse.MknodRequest) (fs.Node, error) {
525 return nil, nil
526 }
527
528 -func (n *Node) Create(req *fuse.CreateRequest, resp *fuse.CreateResponse, ctx context.Context) (fs.Node, fs.Handle, error) {
528 +func (n *Node) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (fs.Node, fs.Handle, error) {
529 if IpnsReadonly {
530 log.Debug("Attempted to call Create on a readonly filesystem.")
531 return nil, nil, fuse.EPERM
@@ -555,7 +555,7 @@ func (n *Node) Create(req *fuse.CreateRequest, resp *fuse.CreateResponse, ctx co
555 return child, child, nil
556 }
557
558 -func (n *Node) Remove(req *fuse.RemoveRequest, ctx context.Context) error {
558 +func (n *Node) Remove(ctx context.Context, req *fuse.RemoveRequest) error {
559 if IpnsReadonly {
560 return fuse.EPERM
561 }
@@ -578,7 +578,7 @@ func (n *Node) Remove(req *fuse.RemoveRequest, ctx context.Context) error {
578 return nil
579 }
580
581 -func (n *Node) Rename(req *fuse.RenameRequest, newDir fs.Node, ctx context.Context) error {
581 +func (n *Node) Rename(ctx context.Context, req *fuse.RenameRequest, newDir fs.Node) error {
582 if IpnsReadonly {
583 log.Debug("Attempted to call Rename on a readonly filesystem.")
584 return fuse.EPERM
@@ -625,3 +625,19 @@ func (n *Node) update(name string, newnode *mdag.Node) error {
625 n.Nd = nnode
626 return nil
627 }
628 +
629 +// to check that out Node implements all the interfaces we want
630 +type ipnsNode interface {
631 + fs.Node
632 + fs.HandleWriter
633 + fs.HandleFlusher
634 + fs.NodeFsyncer
635 + fs.NodeMkdirer
636 + fs.NodeOpener
637 + fs.NodeMknoder
638 + fs.NodeCreater
639 + fs.NodeRemover
640 + fs.NodeRenamer
641 +}
642 +
643 +var _ ipnsNode = (*Node)(nil)
fuse/readonly/readonly_unix.go
+12 -3
@@ -50,7 +50,7 @@ func (*Root) Attr() fuse.Attr {
50 }
51
52 // Lookup performs a lookup under this node.
53 -func (s *Root) Lookup(name string, ctx context.Context) (fs.Node, error) {
53 +func (s *Root) Lookup(ctx context.Context, name string) (fs.Node, error) {
54 log.Debugf("Root Lookup: '%s'", name)
55 switch name {
56 case "mach_kernel", ".hidden", "._.":
@@ -116,7 +116,7 @@ func (s *Node) Attr() fuse.Attr {
116 }
117
118 // Lookup performs a lookup under this node.
119 -func (s *Node) Lookup(name string, ctx context.Context) (fs.Node, error) {
119 +func (s *Node) Lookup(ctx context.Context, name string) (fs.Node, error) {
120 log.Debugf("Lookup '%s'", name)
121 nodes, err := s.Ipfs.Resolver.ResolveLinks(s.Nd, []string{name})
122 if err != nil {
@@ -145,7 +145,7 @@ func (s *Node) ReadDir(ctx context.Context) ([]fuse.Dirent, error) {
145 return nil, fuse.ENOENT
146 }
147
148 -func (s *Node) Read(req *fuse.ReadRequest, resp *fuse.ReadResponse, ctx context.Context) error {
148 +func (s *Node) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error {
149
150 k, err := s.Nd.Key()
151 if err != nil {
@@ -178,3 +178,12 @@ func (s *Node) Read(req *fuse.ReadRequest, resp *fuse.ReadResponse, ctx context.
178 lm["res_size"] = n
179 return nil // may be non-nil / not succeeded
180 }
181 +
182 +// to check that out Node implements all the interfaces we want
183 +type roNode interface {
184 + fs.Node
185 + fs.NodeStringLookuper
186 + fs.HandleReader
187 +}
188 +
189 +var _ roNode = (*Node)(nil)