From 34051b4f3cf04084c2391fa53a0578ca7d0fe42e Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 6 Sep 2023 13:38:08 +0200 Subject: [PATCH] fix remaining xattr-related return codes --- pom.xml | 2 +- .../org/cryptomator/frontend/fuse/ReadOnlyAdapter.java | 7 +++++-- .../org/cryptomator/frontend/fuse/ReadWriteAdapter.java | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 77889d6..a50100e 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ 1.3.0 - 0.6.0 + 0.6.1 2.0.7 3.1.7 diff --git a/src/main/java/org/cryptomator/frontend/fuse/ReadOnlyAdapter.java b/src/main/java/org/cryptomator/frontend/fuse/ReadOnlyAdapter.java index 9a9492f..0590412 100644 --- a/src/main/java/org/cryptomator/frontend/fuse/ReadOnlyAdapter.java +++ b/src/main/java/org/cryptomator/frontend/fuse/ReadOnlyAdapter.java @@ -232,7 +232,10 @@ public int getxattr(String path, String name, ByteBuffer value) { //we use this approach because on different file systems different execptions are thrown when accessing xattr // e.g. on Windows a NoSuchFileException, on Linux a generic FileSystenException is thrown if (xattr.list().stream().noneMatch(key -> key.equals(name))) { - return -errno.enodata(); + return switch (OS.current()) { + case MAC -> -errno.enoattr(); + default -> -errno.enodata(); + }; } int size = xattr.size(name); if (value.capacity() == 0) { @@ -257,7 +260,7 @@ public int listxattr(String path, ByteBuffer list) { LOG.trace("listxattr {}", path); var xattr = Files.getFileAttributeView(node, UserDefinedFileAttributeView.class, LinkOption.NOFOLLOW_LINKS); if (xattr == null) { - return -errno.enosys(); // TODO: return ENOTSUP + return -errno.enotsup(); } var names = xattr.list(); if (list.capacity() == 0) { diff --git a/src/main/java/org/cryptomator/frontend/fuse/ReadWriteAdapter.java b/src/main/java/org/cryptomator/frontend/fuse/ReadWriteAdapter.java index 1c414f3..b3cf37a 100644 --- a/src/main/java/org/cryptomator/frontend/fuse/ReadWriteAdapter.java +++ b/src/main/java/org/cryptomator/frontend/fuse/ReadWriteAdapter.java @@ -108,7 +108,7 @@ public int removexattr(String path, String name) { LOG.trace("removexattr {} {}", path, name); var xattr = Files.getFileAttributeView(node, UserDefinedFileAttributeView.class, LinkOption.NOFOLLOW_LINKS); if (xattr == null) { - return -errno.enosys(); // TODO: return ENOTSUP + return -errno.enotsup(); } xattr.delete(name); return 0; @@ -127,7 +127,7 @@ public int setxattr(String path, String name, ByteBuffer value, int flags) { LOG.trace("setxattr {} {}", path, name); var xattr = Files.getFileAttributeView(node, UserDefinedFileAttributeView.class, LinkOption.NOFOLLOW_LINKS); if (xattr == null) { - return -errno.enosys(); // TODO: return ENOTSUP + return -errno.enotsup(); } xattr.write(name, value); return 0;