X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libatalk%2Fvfs%2Fextattr.c;fp=libatalk%2Fvfs%2Fextattr.c;h=9883563b05df0e709c58eca19a3b3031ef18ab35;hb=172700ab3cd0ec6839239a2b677b2aacd0e6ca1f;hp=853b7f2ffe3c3fd7691f097599dcd3066a75014b;hpb=459c52bda97fb829cb72d5b371f5337356819dfb;p=netatalk.git diff --git a/libatalk/vfs/extattr.c b/libatalk/vfs/extattr.c index 853b7f2f..9883563b 100644 --- a/libatalk/vfs/extattr.c +++ b/libatalk/vfs/extattr.c @@ -88,6 +88,31 @@ static const char *prefix(const char *uname) #endif } +int sys_getxattrfd(const char *path, const char *uname, int oflag, ...) +{ +#if defined HAVE_ATTROPEN + int eafd; + va_list args; + mode_t mode; + + if (oflags & O_CREAT) { + va_start(args, oflag); + mode = va_arg(args, mode_t); + va_end(args); + } + + if (oflags & O_CREAT) + eafd = attropen(path, uname, oflag, mode); + else + eafd = attropen(path, uname, oflag); + + return eafd; +#else + errno = ENOSYS; + return -1; +#endif +} + ssize_t sys_getxattr (const char *path, const char *uname, void *value, size_t size) { const char *name = prefix(uname);