The Samba-Bugzilla – Attachment 1863 Details for
Bug 3698
[PATCH] Darwin xattr interface
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
darwin-xattr.diff (text/plain), 5.59 KB, created by
Björn Jacke
on 2006-04-18 10:18:16 UTC
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Björn Jacke
Created:
2006-04-18 10:18:16 UTC
Size:
5.59 KB
patch
obsolete
>Index: configure.in >=================================================================== >--- source/configure.in (Revision 14439) >+++ source/configure.in (Arbeitskopie) >@@ -4614,6 +4616,30 @@ > AC_MSG_RESULT(no) > ) > >+ >+ ######################################################## >+ # Do xattr functions take additional options like on Darwin? >+if test x"$ac_cv_func_getxattr" = x"yes" ; then >+ AC_CACHE_CHECK([whether xattr interface takes additional options], smb_attr_cv_xattr_add_opt, [ >+ old_LIBS=$LIBS >+ LIBS="$LIBS $ACL_LIBS" >+ AC_TRY_COMPILE([ >+ #include <sys/types.h> >+ #if HAVE_ATTR_XATTR_H >+ #include <attr/xattr.h> >+ #elif HAVE_SYS_XATTR_H >+ #include <sys/xattr.h> >+ #endif >+ ], >+ [getxattr(0, 0, 0, 0, 0, 0);], >+ smb_attr_cv_xattr_add_opt=yes,smb_attr_cv_xattr_add_opt=no >+ LIBS=$old_LIBS)]) >+ if test x"$smb_attr_cv_xattr_add_opt" = x"yes"; then >+ AC_DEFINE(XATTR_ADD_OPT, 1, [xattr functions have additional options]) >+ fi >+ >+fi >+ > ################################################# > # check for AIO support > >Index: lib/system.c >=================================================================== >--- source/lib/system.c (Revision 14439) >+++ source/lib/system.c (Arbeitskopie) >@@ -1373,7 +1373,12 @@ > ssize_t sys_getxattr (const char *path, const char *name, void *value, size_t size) > { > #if defined(HAVE_GETXATTR) >+#ifndef XATTR_ADD_OPT > return getxattr(path, name, value, size); >+#else >+ int options = 0; >+ return getxattr(path, name, value, size, 0, options); >+#endif > #elif defined(HAVE_GETEA) > return getea(path, name, value, size); > #elif defined(HAVE_EXTATTR_GET_FILE) >@@ -1418,6 +1423,9 @@ > { > #if defined(HAVE_LGETXATTR) > return lgetxattr(path, name, value, size); >+#elif defined(HAVE_GETXATTR) && defined(XATTR_ADD_OPT) >+ int options = XATTR_NOFOLLOW; >+ return getxattr(path, name, value, size, 0, options); > #elif defined(HAVE_LGETEA) > return lgetea(path, name, value, size); > #elif defined(HAVE_EXTATTR_GET_LINK) >@@ -1457,7 +1465,12 @@ > ssize_t sys_fgetxattr (int filedes, const char *name, void *value, size_t size) > { > #if defined(HAVE_FGETXATTR) >+#ifndef XATTR_ADD_OPT > return fgetxattr(filedes, name, value, size); >+#else >+ int options = 0; >+ return fgetxattr(filedes, name, value, size, 0, options); >+#endif > #elif defined(HAVE_FGETEA) > return fgetea(filedes, name, value, size); > #elif defined(HAVE_EXTATTR_GET_FD) >@@ -1658,7 +1671,12 @@ > ssize_t sys_listxattr (const char *path, char *list, size_t size) > { > #if defined(HAVE_LISTXATTR) >+#ifndef XATTR_ADD_OPT > return listxattr(path, list, size); >+#else >+ int options = 0; >+ return listxattr(path, list, size, options); >+#endif > #elif defined(HAVE_LISTEA) > return listea(path, list, size); > #elif defined(HAVE_EXTATTR_LIST_FILE) >@@ -1677,6 +1695,9 @@ > { > #if defined(HAVE_LLISTXATTR) > return llistxattr(path, list, size); >+#elif defined(HAVE_LISTXATTR) && defined(XATTR_ADD_OPT) >+ int options = XATTR_NOFOLLOW; >+ return listxattr(path, list, size, options); > #elif defined(HAVE_LLISTEA) > return llistea(path, list, size); > #elif defined(HAVE_EXTATTR_LIST_LINK) >@@ -1694,7 +1715,12 @@ > ssize_t sys_flistxattr (int filedes, char *list, size_t size) > { > #if defined(HAVE_FLISTXATTR) >+#ifndef XATTR_ADD_OPT > return flistxattr(filedes, list, size); >+#else >+ int options = 0; >+ return flistxattr(filedes, list, size, options); >+#endif > #elif defined(HAVE_FLISTEA) > return flistea(filedes, list, size); > #elif defined(HAVE_EXTATTR_LIST_FD) >@@ -1712,7 +1738,12 @@ > int sys_removexattr (const char *path, const char *name) > { > #if defined(HAVE_REMOVEXATTR) >+#ifndef XATTR_ADD_OPT > return removexattr(path, name); >+#else >+ int options = 0; >+ return removexattr(path, name, options); >+#endif > #elif defined(HAVE_REMOVEEA) > return removeea(path, name); > #elif defined(HAVE_EXTATTR_DELETE_FILE) >@@ -1739,6 +1770,9 @@ > { > #if defined(HAVE_LREMOVEXATTR) > return lremovexattr(path, name); >+#elif defined(HAVE_REMOVEXATTR) && defined(XATTR_ADD_OPT) >+ int options = XATTR_NOFOLLOW; >+ return removexattr(path, name, options); > #elif defined(HAVE_LREMOVEEA) > return lremoveea(path, name); > #elif defined(HAVE_EXTATTR_DELETE_LINK) >@@ -1764,7 +1798,12 @@ > int sys_fremovexattr (int filedes, const char *name) > { > #if defined(HAVE_FREMOVEXATTR) >+#ifndef XATTR_ADD_OPT > return fremovexattr(filedes, name); >+#else >+ int options = 0; >+ return fremovexattr(filedes, name, options); >+#endif > #elif defined(HAVE_FREMOVEEA) > return fremoveea(filedes, name); > #elif defined(HAVE_EXTATTR_DELETE_FD) >@@ -1795,7 +1834,12 @@ > int sys_setxattr (const char *path, const char *name, const void *value, size_t size, int flags) > { > #if defined(HAVE_SETXATTR) >+#ifndef XATTR_ADD_OPT > return setxattr(path, name, value, size, flags); >+#else >+ int options = 0; >+ return setxattr(path, name, value, size, 0, options); >+#endif > #elif defined(HAVE_SETEA) > return setea(path, name, value, size, flags); > #elif defined(HAVE_EXTATTR_SET_FILE) >@@ -1844,6 +1888,9 @@ > { > #if defined(HAVE_LSETXATTR) > return lsetxattr(path, name, value, size, flags); >+#elif defined(HAVE_SETXATTR) && defined(XATTR_ADD_OPT) >+ int options = XATTR_NOFOLLOW; >+ return setxattr(path, name, value, size, 0, options); > #elif defined(LSETEA) > return lsetea(path, name, value, size, flags); > #elif defined(HAVE_EXTATTR_SET_LINK) >@@ -1892,7 +1939,12 @@ > int sys_fsetxattr (int filedes, const char *name, const void *value, size_t size, int flags) > { > #if defined(HAVE_FSETXATTR) >+#ifndef XATTR_ADD_OPT > return fsetxattr(filedes, name, value, size, flags); >+#else >+ int options = 0; >+ return fsetxattr(filedes, name, value, size, 0, options); >+#endif > #elif defined(HAVE_FSETEA) > return fsetea(filedes, name, value, size, flags); > #elif defined(HAVE_EXTATTR_SET_FD)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 3698
: 1863