aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2026-02-24 21:18:13 +0100
committerJakob Unterwurzacher2026-02-24 21:18:13 +0100
commitb15f00fb9b03cd2527e3835d68919def645ad3df (patch)
tree3330eacb5c75d5a7148a0904f5dca97afb5beebc
parentd6242d99f4316783c7f4ff82850a46a0fa431b20 (diff)
freebsd: stub xattr functions
/proc/PID/fd does not exist on freebsd.
-rw-r--r--internal/fusefrontend/node_xattr_freebsd.go55
1 files changed, 8 insertions, 47 deletions
diff --git a/internal/fusefrontend/node_xattr_freebsd.go b/internal/fusefrontend/node_xattr_freebsd.go
index 770bb95..9698283 100644
--- a/internal/fusefrontend/node_xattr_freebsd.go
+++ b/internal/fusefrontend/node_xattr_freebsd.go
@@ -1,17 +1,11 @@
package fusefrontend
import (
- "fmt"
-
"golang.org/x/sys/unix"
- "github.com/hanwen/go-fuse/v2/fs"
"github.com/hanwen/go-fuse/v2/fuse"
-
- "github.com/rfjakob/gocryptfs/v2/internal/syscallcompat"
)
-// On FreeBSD, ENODATA is returned when an attribute is not found.
const noSuchAttributeError = unix.ENOATTR
func filterXattrSetFlags(flags int) int {
@@ -19,54 +13,21 @@ func filterXattrSetFlags(flags int) int {
}
func (n *Node) getXAttr(cAttr string) (out []byte, errno unix.Errno) {
- dirfd, cName, errno := n.prepareAtSyscallMyself()
- if errno != 0 {
- return
- }
- defer unix.Close(dirfd)
-
- procPath := fmt.Sprintf("/proc/self/fd/%d/%s", dirfd, cName)
- cData, err := syscallcompat.Lgetxattr(procPath, cAttr)
- if err != nil {
- return nil, fs.ToErrno(err)
- }
- return cData, 0
+ // TODO
+ return nil, unix.EOPNOTSUPP
}
func (n *Node) setXAttr(context *fuse.Context, cAttr string, cData []byte, flags uint32) (errno unix.Errno) {
- dirfd, cName, errno := n.prepareAtSyscallMyself()
- if errno != 0 {
- return
- }
- defer unix.Close(dirfd)
-
- procPath := fmt.Sprintf("/proc/self/fd/%d/%s", dirfd, cName)
-
- return fs.ToErrno(syscallcompat.LsetxattrUser(procPath, cAttr, cData, int(flags), context))
+ // TODO
+ return unix.EOPNOTSUPP
}
func (n *Node) removeXAttr(cAttr string) (errno unix.Errno) {
- dirfd, cName, errno := n.prepareAtSyscallMyself()
- if errno != 0 {
- return
- }
- defer unix.Close(dirfd)
-
- procPath := fmt.Sprintf("/proc/self/fd/%d/%s", dirfd, cName)
- return fs.ToErrno(unix.Lremovexattr(procPath, cAttr))
+ // TODO
+ return unix.EOPNOTSUPP
}
func (n *Node) listXAttr() (out []string, errno unix.Errno) {
- dirfd, cName, errno := n.prepareAtSyscallMyself()
- if errno != 0 {
- return
- }
- defer unix.Close(dirfd)
-
- procPath := fmt.Sprintf("/proc/self/fd/%d/%s", dirfd, cName)
- cNames, err := syscallcompat.Llistxattr(procPath)
- if err != nil {
- return nil, fs.ToErrno(err)
- }
- return cNames, 0
+ // TODO
+ return nil, unix.EOPNOTSUPP
}