diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/replace/wscript | 6 | ||||
-rw-r--r-- | lib/util/wrap_xattr.c | 120 | ||||
-rw-r--r-- | lib/util/wrap_xattr.h | 33 | ||||
-rwxr-xr-x | lib/util/wscript_build | 9 | ||||
-rw-r--r-- | lib/util/wscript_configure | 5 |
5 files changed, 6 insertions, 167 deletions
diff --git a/lib/replace/wscript b/lib/replace/wscript index fc0cb00ae2..1d1480caec 100644 --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -231,6 +231,12 @@ fremoveea fsetea getea listea removeea setea ''', 'attr', checklibc=True) + if (conf.CONFIG_SET('HAVE_ATTR_LISTF') or + conf.CONFIG_SET('HAVE_EXTATTR_LIST_FD') or + conf.CONFIG_SET('HAVE_FLISTEA') or + conf.CONFIG_SET('HAVE_FLISTXATTR')): + conf.DEFINE('HAVE_XATTR_SUPPORT', 1) + # Darwin has extra options to xattr-family functions conf.CHECK_CODE('getxattr(0, 0, 0, 0, 0, 0);', 'XATTR_ADD_OPT', diff --git a/lib/util/wrap_xattr.c b/lib/util/wrap_xattr.c deleted file mode 100644 index b7e69c3676..0000000000 --- a/lib/util/wrap_xattr.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - POSIX NTVFS backend - xattr support using filesystem xattrs - - Copyright (C) Andrew Tridgell 2004 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "includes.h" -#include "system/filesys.h" -#include "../lib/util/wrap_xattr.h" - -#if defined(HAVE_XATTR_SUPPORT) && defined(XATTR_ADDITIONAL_OPTIONS) -static ssize_t _wrap_darwin_fgetxattr(int fd, const char *name, void *value, size_t size) -{ - return fgetxattr(fd, name, value, size, 0, 0); -} -static ssize_t _wrap_darwin_getxattr(const char *path, const char *name, void *value, size_t size) -{ - return getxattr(path, name, value, size, 0, 0); -} -static int _wrap_darwin_fsetxattr(int fd, const char *name, void *value, size_t size, int flags) -{ - return fsetxattr(fd, name, value, size, 0, flags); -} -static int _wrap_darwin_setxattr(const char *path, const char *name, void *value, size_t size, int flags) -{ - return setxattr(path, name, value, size, 0, flags); -} -static int _wrap_darwin_fremovexattr(int fd, const char *name) -{ - return fremovexattr(fd, name, 0); -} -static int _wrap_darwin_removexattr(const char *path, const char *name) -{ - return removexattr(path, name, 0); -} -#define fgetxattr _wrap_darwin_fgetxattr -#define getxattr _wrap_darwin_getxattr -#define fsetxattr _wrap_darwin_fsetxattr -#define setxattr _wrap_darwin_setxattr -#define fremovexattr _wrap_darwin_fremovexattr -#define removexattr _wrap_darwin_removexattr -#elif !defined(HAVE_XATTR_SUPPORT) -static ssize_t _none_fgetxattr(int fd, const char *name, void *value, size_t size) -{ - errno = ENOSYS; - return -1; -} -static ssize_t _none_getxattr(const char *path, const char *name, void *value, size_t size) -{ - errno = ENOSYS; - return -1; -} -static int _none_fsetxattr(int fd, const char *name, void *value, size_t size, int flags) -{ - errno = ENOSYS; - return -1; -} -static int _none_setxattr(const char *path, const char *name, void *value, size_t size, int flags) -{ - errno = ENOSYS; - return -1; -} -static int _none_fremovexattr(int fd, const char *name) -{ - errno = ENOSYS; - return -1; -} -static int _none_removexattr(const char *path, const char *name) -{ - errno = ENOSYS; - return -1; -} -#define fgetxattr _none_fgetxattr -#define getxattr _none_getxattr -#define fsetxattr _none_fsetxattr -#define setxattr _none_setxattr -#define fremovexattr _none_fremovexattr -#define removexattr _none_removexattr -#endif - -_PUBLIC_ ssize_t wrap_fgetxattr(int fd, const char *name, void *value, size_t size) -{ - return fgetxattr(fd, name, value, size); -} -_PUBLIC_ ssize_t wrap_getxattr(const char *path, const char *name, void *value, size_t size) -{ - return getxattr(path, name, value, size); -} -_PUBLIC_ int wrap_fsetxattr(int fd, const char *name, void *value, size_t size, int flags) -{ - return fsetxattr(fd, name, value, size, flags); -} -_PUBLIC_ int wrap_setxattr(const char *path, const char *name, void *value, size_t size, int flags) -{ - return setxattr(path, name, value, size, flags); -} -_PUBLIC_ int wrap_fremovexattr(int fd, const char *name) -{ - return fremovexattr(fd, name); -} -_PUBLIC_ int wrap_removexattr(const char *path, const char *name) -{ - return removexattr(path, name); -} - diff --git a/lib/util/wrap_xattr.h b/lib/util/wrap_xattr.h deleted file mode 100644 index 745b93d764..0000000000 --- a/lib/util/wrap_xattr.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - Unix SMB/CIFS implementation. - - POSIX NTVFS backend - xattr support using filesystem xattrs - - Copyright (C) Andrew Tridgell 2004 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef __LIB_UTIL_WRAP_XATTR_H__ -#define __LIB_UTIL_WRAP_XATTR_H__ - -ssize_t wrap_fgetxattr(int fd, const char *name, void *value, size_t size); -ssize_t wrap_getxattr(const char *path, const char *name, void *value, size_t size); -int wrap_fsetxattr(int fd, const char *name, void *value, size_t size, int flags); -int wrap_setxattr(const char *path, const char *name, void *value, size_t size, int flags); -int wrap_fremovexattr(int fd, const char *name); -int wrap_removexattr(const char *path, const char *name); - -#endif /* __LIB_UTIL_WRAP_XATTR_H__ */ - diff --git a/lib/util/wscript_build b/lib/util/wscript_build index 2fa402396c..1cefe2d642 100755 --- a/lib/util/wscript_build +++ b/lib/util/wscript_build @@ -38,15 +38,6 @@ bld.SAMBA_SUBSYSTEM('UNIX_PRIVS', ) -bld.SAMBA_LIBRARY('wrap_xattr', - source='wrap_xattr.c', - public_deps='attr', - deps='talloc', - local_include=False, - private_library=True - ) - - bld.SAMBA_LIBRARY('util_tdb', source='util_tdb.c', local_include=False, diff --git a/lib/util/wscript_configure b/lib/util/wscript_configure index 28199272f2..d5c9f743d0 100644 --- a/lib/util/wscript_configure +++ b/lib/util/wscript_configure @@ -10,17 +10,12 @@ conf.CHECK_FUNCS_IN('backtrace backtrace_symbols', 'execinfo', checklibc=True, h conf.CHECK_FUNCS('sigprocmask sigblock sigaction') xattr_headers='sys/attributes.h attr/xattr.h sys/xattr.h' -conf.CHECK_FUNCS_IN('flistxattr', 'attr', checklibc=True, headers=xattr_headers) conf.CHECK_CODE('getxattr(NULL, NULL, NULL, 0, 0, 0)', headers=xattr_headers, local_include=False, define='XATTR_ADDITIONAL_OPTIONS', msg='Checking for darwin xattr api') -if conf.CONFIG_SET('HAVE_FLISTXATTR'): - conf.DEFINE('HAVE_XATTR_SUPPORT', 1) - - conf.CHECK_STRUCTURE_MEMBER('struct statvfs', 'f_frsize', define='HAVE_FRSIZE', headers='sys/statvfs.h') |