diff --git a/pkgs/by-name/li/libredirect/libredirect.c b/pkgs/by-name/li/libredirect/libredirect.c index 29169facf8ed..d0b9ae8b9626 100644 --- a/pkgs/by-name/li/libredirect/libredirect.c +++ b/pkgs/by-name/li/libredirect/libredirect.c @@ -387,6 +387,26 @@ WRAPPER(DIR *, opendir)(const char * path) } WRAPPER_DEF(opendir) +#if !defined(__APPLE__) +WRAPPER(ssize_t, getxattr)(const char * path, const char * name, void * value, size_t size) +{ + ssize_t (*getxattr_real) (const char *, const char *, void *, size_t) = LOOKUP_REAL(getxattr); + char buf[PATH_MAX]; + return getxattr_real(rewrite(path, buf), name, value, size); +} +WRAPPER_DEF(getxattr); +#endif + +#if !defined(__APPLE__) +WRAPPER(ssize_t, lgetxattr)(const char * path, const char * name, void * value, size_t size) +{ + ssize_t (*lgetxattr_real) (const char *, const char *, void *, size_t) = LOOKUP_REAL(lgetxattr); + char buf[PATH_MAX]; + return lgetxattr_real(rewrite(path, buf), name, value, size); +} +WRAPPER_DEF(lgetxattr); +#endif + #if !defined(__APPLE__) WRAPPER(ssize_t, listxattr)(const char * path, char * list, size_t size) { @@ -407,6 +427,46 @@ WRAPPER(ssize_t, llistxattr)(const char * path, char * list, size_t size) WRAPPER_DEF(llistxattr); #endif +#if !defined(__APPLE__) +WRAPPER(int, setxattr)(const char * path, const char * name, const void * value, size_t size, int flags) +{ + int (*setxattr_real) (const char *, const char *, const void *, size_t, int) = LOOKUP_REAL(setxattr); + char buf[PATH_MAX]; + return setxattr_real(rewrite(path, buf), name, value, size, flags); +} +WRAPPER_DEF(setxattr); +#endif + +#if !defined(__APPLE__) +WRAPPER(int, lsetxattr)(const char * path, const char * name, const void * value, size_t size, int flags) +{ + int (*lsetxattr_real) (const char *, const char *, const void *, size_t, int) = LOOKUP_REAL(lsetxattr); + char buf[PATH_MAX]; + return lsetxattr_real(rewrite(path, buf), name, value, size, flags); +} +WRAPPER_DEF(setxattr); +#endif + +#if !defined(__APPLE__) +WRAPPER(int, removexattr)(const char * path, const char * name) +{ + int (*removexattr_real) (const char *, const char *) = LOOKUP_REAL(removexattr); + char buf[PATH_MAX]; + return removexattr_real(rewrite(path, buf), name); +} +WRAPPER_DEF(removexattr); +#endif + +#if !defined(__APPLE__) +WRAPPER(int, lremovexattr)(const char * path, const char * name) +{ + int (*lremovexattr_real) (const char *, const char *) = LOOKUP_REAL(lremovexattr); + char buf[PATH_MAX]; + return lremovexattr_real(rewrite(path, buf), name); +} +WRAPPER_DEF(lremovexattr); +#endif + #define SYSTEM_CMD_MAX 512 static char * replace_substring(char * source, char * buf, char * replace_string, char * start_ptr, char * suffix_ptr) {