summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--daemon/configure.ac2
-rw-r--r--daemon/xattr.c11
2 files changed, 10 insertions, 3 deletions
diff --git a/daemon/configure.ac b/daemon/configure.ac
index 2fd1ae93..dc6936bf 100644
--- a/daemon/configure.ac
+++ b/daemon/configure.ac
@@ -66,7 +66,7 @@ dnl Functions which may not be available in older distributions.
AC_CHECK_FUNCS([futimens listxattr llistxattr getxattr lgetxattr setxattr lsetxattr removexattr lremovexattr])
dnl Headers.
-AC_CHECK_HEADERS([attr/xattr.h])
+AC_CHECK_HEADERS([attr/xattr.h sys/xattr.h])
dnl Produce output files.
AC_CONFIG_HEADERS([config.h])
diff --git a/daemon/xattr.c b/daemon/xattr.c
index 70c90705..23b00d82 100644
--- a/daemon/xattr.c
+++ b/daemon/xattr.c
@@ -25,8 +25,15 @@
#include "daemon.h"
#include "actions.h"
+#if defined(HAVE_ATTR_XATTR_H) || defined(HAVE_SYS_XATTR_H)
+
#ifdef HAVE_ATTR_XATTR_H
#include <attr/xattr.h>
+#else
+#ifdef HAVE_SYS_XATTR_H
+#include <sys/xattr.h>
+#endif
+#endif
static guestfs_int_xattr_list *getxattrs (char *path, ssize_t (*listxattr) (const char *path, char *list, size_t size), ssize_t (*getxattr) (const char *path, const char *name, void *value, size_t size));
static int _setxattr (char *xattr, char *val, int vallen, char *path, int (*setxattr) (const char *path, const char *name, const void *value, size_t size, int flags));
@@ -237,7 +244,7 @@ _removexattr (char *xattr, char *path,
return 0;
}
-#else /* !HAVE_ATTR_XATTR_H */
+#else /* no xattr.h */
guestfs_int_xattr_list *
do_getxattrs (char *path)
@@ -281,4 +288,4 @@ do_lremovexattr (char *xattr, char *path)
return -1;
}
-#endif /* !HAVE_ATTR_XATTR_H */
+#endif /* no xattr.h */