s4-xattr: Use libreplace xattr functions directly
authorAndrew Bartlett <abartlet@samba.org>
Fri, 1 Jun 2012 03:41:46 +0000 (13:41 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 2 Jun 2012 00:13:49 +0000 (02:13 +0200)
lib/replace/wscript
lib/util/wrap_xattr.c [deleted file]
lib/util/wrap_xattr.h [deleted file]
lib/util/wscript_build
lib/util/wscript_configure
source4/ntvfs/posix/python/pyposix_eadb.c
source4/ntvfs/posix/python/pyxattr_native.c
source4/ntvfs/posix/python/pyxattr_tdb.c
source4/ntvfs/posix/wscript_build
source4/ntvfs/posix/xattr_system.c

index fc0cb00ae252ad958488bcd238c44f4438631000..1d1480caec4a58634fcaa673686ea9b45d3951b0 100644 (file)
@@ -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 (file)
index b7e69c3..0000000
+++ /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 (file)
index 745b93d..0000000
+++ /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__ */
-
index 2fa402396c735209f82ff4c368b6bf53d5782761..1cefe2d642ae0f43d4eeea1dcf8ae12083964d20 100755 (executable)
@@ -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,
index 28199272f276733e3ebe527d34f282324765f5ec..d5c9f743d0a8519e3451bb270e154b78b31faa92 100644 (file)
@@ -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')
 
index 226160f88d20ba79250a0916fb7b4e9e55552d66..48310cc0168ea92c7108cb8ccdc50e3a38b2e881 100644 (file)
@@ -24,7 +24,6 @@
 #include "tdb_compat.h"
 #include "lib/tdb_wrap/tdb_wrap.h"
 #include "librpc/ndr/libndr.h"
-#include "lib/util/wrap_xattr.h"
 #include "ntvfs/posix/posix_eadb.h"
 #include "libcli/util/pyerrors.h"
 #include "param/pyparam.h"
index caec115c053410ae1ae964ac43e56363f14afc5b..4f610a01f5ffa41f12558e3f0061c81835aa6ca7 100644 (file)
@@ -21,7 +21,7 @@
 #include <Python.h>
 #include "includes.h"
 #include "librpc/ndr/libndr.h"
-#include "lib/util/wrap_xattr.h"
+#include "system/filesys.h"
 
 void initxattr_native(void);
 
@@ -46,7 +46,7 @@ static PyObject *py_wrap_setxattr(PyObject *self, PyObject *args)
                return NULL;
 
        blob.length = blobsize;
-       ret = wrap_setxattr(filename, attribute, blob.data, blob.length, 0);
+       ret = setxattr(filename, attribute, blob.data, blob.length, 0);
        if( ret < 0 ) {
                if (errno == ENOTSUP) {
                        PyErr_SetFromErrno(PyExc_IOError);
@@ -68,7 +68,7 @@ static PyObject *py_wrap_getxattr(PyObject *self, PyObject *args)
        if (!PyArg_ParseTuple(args, "ss", &filename, &attribute))
                return NULL;
        mem_ctx = talloc_new(NULL);
-       len = wrap_getxattr(filename,attribute,NULL,0);
+       len = getxattr(filename,attribute,NULL,0);
        if( len < 0 ) {
                if (errno == ENOTSUP) {
                        PyErr_SetFromErrno(PyExc_IOError);
@@ -80,7 +80,7 @@ static PyObject *py_wrap_getxattr(PyObject *self, PyObject *args)
        }
        /* check length ... */
        buf = talloc_zero_array(mem_ctx, char, len);
-       len = wrap_getxattr(filename, attribute, buf, len);
+       len = getxattr(filename, attribute, buf, len);
        if( len < 0 ) {
                if (errno == ENOTSUP) {
                        PyErr_SetFromErrno(PyExc_IOError);
index 1df9897e9a951a896b7e3c42b67f4b3e1b4a100f..b5109317dd6dfb75d8859f32c9a37b338387907f 100644 (file)
@@ -24,7 +24,6 @@
 #include "tdb_compat.h"
 #include "lib/tdb_wrap/tdb_wrap.h"
 #include "librpc/ndr/libndr.h"
-#include "lib/util/wrap_xattr.h"
 #include "ntvfs/posix/posix_eadb.h"
 #include "libcli/util/pyerrors.h"
 #include "param/pyparam.h"
index 6ac22e1e84c8a9035dbee1d7fe72d35bca0e6eb1..ee0ef2494c221a6f9396db1f233541b55136e338 100644 (file)
@@ -35,14 +35,14 @@ bld.SAMBA_MODULE('ntvfs_posix',
        autoproto='vfs_posix_proto.h',
        subsystem='ntvfs',
        init_function='ntvfs_posix_init',
-       deps='NDR_XATTR wrap_xattr ntvfs_common MESSAGING LIBWBCLIENT_OLD pvfs_acl pvfs_aio posix_eadb',
+       deps='NDR_XATTR attr ntvfs_common MESSAGING LIBWBCLIENT_OLD pvfs_acl pvfs_aio posix_eadb',
        internal_module=True
        )
 
 
 bld.SAMBA_PYTHON('python_xattr_native',
        source='python/pyxattr_native.c',
-       deps='ndr ldb samdb samba-credentials pyparam_util wrap_xattr attr',
+       deps='ndr ldb samdb samba-credentials pyparam_util attr',
        realname='samba/xattr_native.so'
        )
 
index f22c0e9ea4b04d1d6bf3cdc988412bdd44add525..ebb2010e381f10ca5d234783757fbb5fe3370287 100644 (file)
@@ -21,7 +21,6 @@
 
 #include "includes.h"
 #include "vfs_posix.h"
-#include "../lib/util/wrap_xattr.h"
 
 /*
   pull a xattr as a blob, from either a file or a file descriptor
@@ -43,9 +42,9 @@ NTSTATUS pull_xattr_blob_system(struct pvfs_state *pvfs,
 
 again:
        if (fd != -1) {
-               ret = wrap_fgetxattr(fd, attr_name, blob->data, estimated_size);
+               ret = fgetxattr(fd, attr_name, blob->data, estimated_size);
        } else {
-               ret = wrap_getxattr(fname, attr_name, blob->data, estimated_size);
+               ret = getxattr(fname, attr_name, blob->data, estimated_size);
        }
        if (ret == -1 && errno == ERANGE) {
                estimated_size *= 2;
@@ -104,9 +103,9 @@ NTSTATUS push_xattr_blob_system(struct pvfs_state *pvfs,
        int ret;
 
        if (fd != -1) {
-               ret = wrap_fsetxattr(fd, attr_name, blob->data, blob->length, 0);
+               ret = fsetxattr(fd, attr_name, blob->data, blob->length, 0);
        } else {
-               ret = wrap_setxattr(fname, attr_name, blob->data, blob->length, 0);
+               ret = setxattr(fname, attr_name, blob->data, blob->length, 0);
        }
        if (ret == -1) {
                return pvfs_map_errno(pvfs, errno);
@@ -125,9 +124,9 @@ NTSTATUS delete_xattr_system(struct pvfs_state *pvfs, const char *attr_name,
        int ret;
 
        if (fd != -1) {
-               ret = wrap_fremovexattr(fd, attr_name);
+               ret = fremovexattr(fd, attr_name);
        } else {
-               ret = wrap_removexattr(fname, attr_name);
+               ret = removexattr(fname, attr_name);
        }
        if (ret == -1) {
                return pvfs_map_errno(pvfs, errno);