command.c: avoid shadowing a global function
[libguestfs.git] / daemon / xattr.c
index 70c9070..17d9382 100644 (file)
 #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));
-static int _removexattr (char *xattr, char *path, int (*removexattr) (const char *path, const char *name));
+static guestfs_int_xattr_list *getxattrs (const 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 (const char *xattr, const char *val, int vallen, const char *path, int (*setxattr) (const char *path, const char *name, const void *value, size_t size, int flags));
+static int _removexattr (const char *xattr, const char *path, int (*removexattr) (const char *path, const char *name));
 
 guestfs_int_xattr_list *
-do_getxattrs (char *path)
+do_getxattrs (const char *path)
 {
 #if defined(HAVE_LISTXATTR) && defined(HAVE_GETXATTR)
   return getxattrs (path, listxattr, getxattr);
@@ -44,7 +51,7 @@ do_getxattrs (char *path)
 }
 
 guestfs_int_xattr_list *
-do_lgetxattrs (char *path)
+do_lgetxattrs (const char *path)
 {
 #if defined(HAVE_LLISTXATTR) && defined(HAVE_LGETXATTR)
   return getxattrs (path, llistxattr, lgetxattr);
@@ -55,7 +62,7 @@ do_lgetxattrs (char *path)
 }
 
 int
-do_setxattr (char *xattr, char *val, int vallen, char *path)
+do_setxattr (const char *xattr, const char *val, int vallen, const char *path)
 {
 #if defined(HAVE_SETXATTR)
   return _setxattr (xattr, val, vallen, path, setxattr);
@@ -66,7 +73,7 @@ do_setxattr (char *xattr, char *val, int vallen, char *path)
 }
 
 int
-do_lsetxattr (char *xattr, char *val, int vallen, char *path)
+do_lsetxattr (const char *xattr, const char *val, int vallen, const char *path)
 {
 #if defined(HAVE_LSETXATTR)
   return _setxattr (xattr, val, vallen, path, lsetxattr);
@@ -77,7 +84,7 @@ do_lsetxattr (char *xattr, char *val, int vallen, char *path)
 }
 
 int
-do_removexattr (char *xattr, char *path)
+do_removexattr (const char *xattr, const char *path)
 {
 #if defined(HAVE_REMOVEXATTR)
   return _removexattr (xattr, path, removexattr);
@@ -88,7 +95,7 @@ do_removexattr (char *xattr, char *path)
 }
 
 int
-do_lremovexattr (char *xattr, char *path)
+do_lremovexattr (const char *xattr, const char *path)
 {
 #if defined(HAVE_LREMOVEXATTR)
   return _removexattr (xattr, path, lremovexattr);
@@ -99,19 +106,16 @@ do_lremovexattr (char *xattr, char *path)
 }
 
 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))
+getxattrs (const 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))
 {
   ssize_t len, vlen;
   char *buf = NULL;
   int i, j;
   guestfs_int_xattr_list *r = NULL;
 
-  NEED_ROOT (NULL);
-  ABS_PATH (path, NULL);
-
   CHROOT_IN;
   len = listxattr (path, NULL, 0);
   CHROOT_OUT;
@@ -168,15 +172,15 @@ getxattrs (char *path,
     r->guestfs_int_xattr_list_val[j].attrval.attrval_len = vlen;
 
     if (r->guestfs_int_xattr_list_val[j].attrname == NULL ||
-       r->guestfs_int_xattr_list_val[j].attrval.attrval_val == NULL) {
+        r->guestfs_int_xattr_list_val[j].attrval.attrval_val == NULL) {
       reply_with_perror ("malloc");
       goto error;
     }
 
     CHROOT_IN;
     vlen = getxattr (path, &buf[i],
-                    r->guestfs_int_xattr_list_val[j].attrval.attrval_val,
-                    vlen);
+                     r->guestfs_int_xattr_list_val[j].attrval.attrval_val,
+                     vlen);
     CHROOT_OUT;
     if (vlen == -1) {
       reply_with_perror ("getxattr");
@@ -193,8 +197,8 @@ getxattrs (char *path,
   if (r) {
     if (r->guestfs_int_xattr_list_val)
       for (i = 0; i < r->guestfs_int_xattr_list_len; ++i) {
-       free (r->guestfs_int_xattr_list_val[i].attrname);
-       free (r->guestfs_int_xattr_list_val[i].attrval.attrval_val);
+        free (r->guestfs_int_xattr_list_val[i].attrname);
+        free (r->guestfs_int_xattr_list_val[i].attrval.attrval_val);
       }
     free (r->guestfs_int_xattr_list_val);
   }
@@ -203,9 +207,9 @@ getxattrs (char *path,
 }
 
 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))
+_setxattr (const char *xattr, const char *val, int vallen, const char *path,
+           int (*setxattr) (const char *path, const char *name,
+                            const void *value, size_t size, int flags))
 {
   int r;
 
@@ -221,8 +225,8 @@ _setxattr (char *xattr, char *val, int vallen, char *path,
 }
 
 static int
-_removexattr (char *xattr, char *path,
-             int (*removexattr) (const char *path, const char *name))
+_removexattr (const char *xattr, const char *path,
+              int (*removexattr) (const char *path, const char *name))
 {
   int r;
 
@@ -237,48 +241,48 @@ _removexattr (char *xattr, char *path,
   return 0;
 }
 
-#else /* !HAVE_ATTR_XATTR_H */
+#else /* no xattr.h */
 
 guestfs_int_xattr_list *
-do_getxattrs (char *path)
+do_getxattrs (const char *path)
 {
   reply_with_error ("getxattrs: no support for xattrs");
   return NULL;
 }
 
 guestfs_int_xattr_list *
-do_lgetxattrs (char *path)
+do_lgetxattrs (const char *path)
 {
   reply_with_error ("lgetxattrs: no support for xattrs");
   return NULL;
 }
 
 int
-do_setxattr (char *xattr, char *val, int vallen, char *path)
+do_setxattr (const char *xattr, const char *val, int vallen, const char *path)
 {
   reply_with_error ("setxattr: no support for xattrs");
   return -1;
 }
 
 int
-do_lsetxattr (char *xattr, char *val, int vallen, char *path)
+do_lsetxattr (const char *xattr, const char *val, int vallen, const char *path)
 {
   reply_with_error ("lsetxattr: no support for xattrs");
   return -1;
 }
 
 int
-do_removexattr (char *xattr, char *path)
+do_removexattr (const char *xattr, const char *path)
 {
   reply_with_error ("removexattr: no support for xattrs");
   return -1;
 }
 
 int
-do_lremovexattr (char *xattr, char *path)
+do_lremovexattr (const char *xattr, const char *path)
 {
   reply_with_error ("lremovexattr: no support for xattrs");
   return -1;
 }
 
-#endif /* !HAVE_ATTR_XATTR_H */
+#endif /* no xattr.h */