summaryrefslogtreecommitdiff
path: root/xattr
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2015-04-24 21:04:39 +0200
committerJohannes Berg <johannes@sipsolutions.net>2015-04-25 11:39:18 +0200
commit9eb1b4ed4e43ca8fcabf1e6fb45a3df47b7f0d2b (patch)
tree63bea0bfa57ac53ec804fb88f4dd9c157880269b /xattr
parentab5d7cb61d03e739dedddf6c5c1235f6d05527f9 (diff)
downloadxattr-9eb1b4ed4e43ca8fcabf1e6fb45a3df47b7f0d2b.tar.gz
fix options
The options passed to xattr are internally converted from XATTR_XATTR_* to XATTR_* with the exception of NOFOLLOW which is in most cases handled explicitly in the code. In order to make this work properly, however, the correct constants need to actually be used in python - that means the XATTR_XATTR_* ones must be there rather than the OS's XATTR_* ones.
Diffstat (limited to 'xattr')
-rw-r--r--xattr/lib.py30
1 files changed, 14 insertions, 16 deletions
diff --git a/xattr/lib.py b/xattr/lib.py
index 0f29190..d58c7e9 100644
--- a/xattr/lib.py
+++ b/xattr/lib.py
@@ -5,10 +5,10 @@ import cffi
ffi = cffi.FFI()
ffi.cdef("""
-#define XATTR_NOFOLLOW ...
-#define XATTR_CREATE ...
-#define XATTR_REPLACE ...
-#define XATTR_NOSECURITY ...
+#define XATTR_XATTR_NOFOLLOW ...
+#define XATTR_XATTR_CREATE ...
+#define XATTR_XATTR_REPLACE ...
+#define XATTR_XATTR_NOSECURITY ...
#define XATTR_MAXNAMELEN ...
ssize_t xattr_getxattr(const char *, const char *, void *, ssize_t, uint32_t, int);
@@ -582,25 +582,23 @@ static ssize_t xattr_flistxattr(int fd, char *namebuf, size_t size, int options)
#define xattr_fsetxattr fsetxattr
#define xattr_listxattr listxattr
#define xattr_flistxattr flistxattr
+
+/* define these for use in python (see below) */
+#define XATTR_XATTR_NOFOLLOW XATTR_NOFOLLOW
+#define XATTR_XATTR_CREATE XATTR_CREATE
+#define XATTR_XATTR_REPLACE XATTR_REPLACE
+#define XATTR_XATTR_NOSECURITY XATTR_NOSECURITY
#endif
#ifndef XATTR_MAXNAMELEN
#define XATTR_MAXNAMELEN 127
#endif
-
-#ifndef XATTR_NOFOLLOW
-#define XATTR_NOFOLLOW 0x0001
-#endif
-
-#ifndef XATTR_NOSECURITY
-#define XATTR_NOSECURITY 0x0008
-#endif
""", ext_package='xattr')
-XATTR_NOFOLLOW = lib.XATTR_NOFOLLOW
-XATTR_CREATE = lib.XATTR_CREATE
-XATTR_REPLACE = lib.XATTR_REPLACE
-XATTR_NOSECURITY = lib.XATTR_NOSECURITY
+XATTR_NOFOLLOW = lib.XATTR_XATTR_NOFOLLOW
+XATTR_CREATE = lib.XATTR_XATTR_CREATE
+XATTR_REPLACE = lib.XATTR_XATTR_REPLACE
+XATTR_NOSECURITY = lib.XATTR_XATTR_NOSECURITY
XATTR_MAXNAMELEN = lib.XATTR_MAXNAMELEN
XATTR_FINDERINFO_NAME = "com.apple.FinderInfo"