diff options
author | Jakob Unterwurzacher | 2020-07-26 18:35:12 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2020-07-26 18:35:12 +0200 |
commit | 777b95f82ffea8a25b95089343b07b29378110da (patch) | |
tree | 641adf67d3969a2b87c52ef62b384f022b7362d7 /internal/fusefrontend/xattr_darwin.go | |
parent | 81fb42b9124e0d8e59d67ff2072d4388ce42ff77 (diff) |
v2api: delete (most) fusefrontend v1 files
All the functionality in these files has been reimplemented
for the v2 api. Drop the old files.
Diffstat (limited to 'internal/fusefrontend/xattr_darwin.go')
-rw-r--r-- | internal/fusefrontend/xattr_darwin.go | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/internal/fusefrontend/xattr_darwin.go b/internal/fusefrontend/xattr_darwin.go deleted file mode 100644 index 1d4ffcd..0000000 --- a/internal/fusefrontend/xattr_darwin.go +++ /dev/null @@ -1,90 +0,0 @@ -// +build darwin - -// Package fusefrontend interfaces directly with the go-fuse library. -package fusefrontend - -import ( - "syscall" - - "golang.org/x/sys/unix" - - "github.com/hanwen/go-fuse/v2/fuse" - - "github.com/rfjakob/gocryptfs/internal/syscallcompat" -) - -// On Darwin it is needed to unset XATTR_NOSECURITY 0x0008 -func filterXattrSetFlags(flags int) int { - // See https://opensource.apple.com/source/xnu/xnu-1504.15.3/bsd/sys/xattr.h.auto.html - const XATTR_NOSECURITY = 0x0008 - - return flags &^ XATTR_NOSECURITY -} - -func (fs *FS) getXAttr(relPath string, cAttr string, context *fuse.Context) ([]byte, fuse.Status) { - // O_NONBLOCK to not block on FIFOs. - fd, err := fs.openBackingFile(relPath, syscall.O_RDONLY|syscall.O_NONBLOCK) - if err != nil { - return nil, fuse.ToStatus(err) - } - defer syscall.Close(fd) - - cData, err := syscallcompat.Fgetxattr(fd, cAttr) - if err != nil { - return nil, fuse.ToStatus(err) - } - - return cData, fuse.OK -} - -func (fs *FS) setXAttr(relPath string, cAttr string, cData []byte, flags int, context *fuse.Context) fuse.Status { - // O_NONBLOCK to not block on FIFOs. - fd, err := fs.openBackingFile(relPath, syscall.O_WRONLY|syscall.O_NONBLOCK) - // Directories cannot be opened read-write. Retry. - if err == syscall.EISDIR { - fd, err = fs.openBackingFile(relPath, syscall.O_RDONLY|syscall.O_DIRECTORY|syscall.O_NONBLOCK) - } - if err != nil { - return fuse.ToStatus(err) - } - defer syscall.Close(fd) - - err = unix.Fsetxattr(fd, cAttr, cData, flags) - return fuse.ToStatus(err) -} - -func (fs *FS) removeXAttr(relPath string, cAttr string, context *fuse.Context) fuse.Status { - // O_NONBLOCK to not block on FIFOs. - fd, err := fs.openBackingFile(relPath, syscall.O_WRONLY|syscall.O_NONBLOCK) - // Directories cannot be opened read-write. Retry. - if err == syscall.EISDIR { - fd, err = fs.openBackingFile(relPath, syscall.O_RDONLY|syscall.O_DIRECTORY|syscall.O_NONBLOCK) - } - if err != nil { - return fuse.ToStatus(err) - } - defer syscall.Close(fd) - - err = unix.Fremovexattr(fd, cAttr) - return fuse.ToStatus(err) -} - -func (fs *FS) listXAttr(relPath string, context *fuse.Context) ([]string, fuse.Status) { - // O_NONBLOCK to not block on FIFOs. - fd, err := fs.openBackingFile(relPath, syscall.O_RDONLY|syscall.O_NONBLOCK) - // On a symlink, openBackingFile fails with ELOOP. Let's pretend there - // can be no xattrs on symlinks, and always return an empty result. - if err == syscall.ELOOP { - return nil, fuse.OK - } - if err != nil { - return nil, fuse.ToStatus(err) - } - defer syscall.Close(fd) - - cNames, err := syscallcompat.Flistxattr(fd) - if err != nil { - return nil, fuse.ToStatus(err) - } - return cNames, fuse.OK -} |