X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fxattr.c;h=a908a44b6c798364b48864623ea74315da6946ee;hp=70c90705afb314a02de565ffc236bbaee18a4767;hb=8ae7e1057f43e9b79260cdf191f39d657fdf0293;hpb=74ee9390d3a7063470925d6d78dd9ba73bb4c634 diff --git a/daemon/xattr.c b/daemon/xattr.c index 70c9070..a908a44 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 +#else +#ifdef HAVE_SYS_XATTR_H +#include +#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)); @@ -100,9 +107,9 @@ 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)) + 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; @@ -168,15 +175,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 +200,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); } @@ -204,8 +211,8 @@ 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)) + int (*setxattr) (const char *path, const char *name, + const void *value, size_t size, int flags)) { int r; @@ -222,7 +229,7 @@ _setxattr (char *xattr, char *val, int vallen, char *path, static int _removexattr (char *xattr, char *path, - int (*removexattr) (const char *path, const char *name)) + int (*removexattr) (const char *path, const char *name)) { int r; @@ -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 */