github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/kbfs/libfuse/quarantine.go (about)

     1  // Copyright 2018 Keybase Inc. All rights reserved.
     2  // Use of this source code is governed by a BSD
     3  // license that can be found in the LICENSE file.
     4  //
     5  //go:build !windows
     6  // +build !windows
     7  
     8  package libfuse
     9  
    10  import (
    11  	"bazil.org/fuse"
    12  	"bazil.org/fuse/fs"
    13  	"golang.org/x/net/context"
    14  )
    15  
    16  // XattrHandler is an interface that includes fuse Get/Set/Remove calls for
    17  // xattr.
    18  type XattrHandler interface {
    19  	fs.NodeGetxattrer
    20  	fs.NodeSetxattrer
    21  	fs.NodeRemovexattrer
    22  }
    23  
    24  // NoXattrHandler is a Xattr handler that always returns fuse.ENOTSUP.
    25  type NoXattrHandler struct{}
    26  
    27  var _ XattrHandler = NoXattrHandler{}
    28  
    29  // Getxattr implements the fs.NodeGetxattrer interface.
    30  func (h NoXattrHandler) Getxattr(context.Context,
    31  	*fuse.GetxattrRequest, *fuse.GetxattrResponse) error {
    32  	return fuse.ENOTSUP
    33  }
    34  
    35  // Setxattr implements the fs.NodeSetxattrer interface.
    36  func (h NoXattrHandler) Setxattr(context.Context, *fuse.SetxattrRequest) error {
    37  	return fuse.ENOTSUP
    38  }
    39  
    40  // Removexattr implements the fs.NodeRemovexattrer interface.
    41  func (h NoXattrHandler) Removexattr(context.Context, *fuse.RemovexattrRequest) error {
    42  	return fuse.ENOTSUP
    43  }