summaryrefslogtreecommitdiff
path: root/src/metastore.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/metastore.c')
-rw-r--r--src/metastore.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/metastore.c b/src/metastore.c
index ada41c4..9f01a8c 100644
--- a/src/metastore.c
+++ b/src/metastore.c
@@ -25,7 +25,11 @@
#include <sys/stat.h>
#include <getopt.h>
#include <utime.h>
-#include <sys/xattr.h>
+
+#if !defined(NO_XATTR) || !NO_XATTR
+# include <sys/xattr.h>
+#endif /* !NO_XATTR */
+
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
@@ -122,6 +126,11 @@ compare_print(struct metaentry *real, struct metaentry *stored, int cmp)
if (cmp & DIFF_XATTR)
msg(MSG_QUIET, "xattr ");
msg(MSG_QUIET, "\n");
+
+ if (NO_XATTR && cmp & DIFF_XATTR) {
+ msg(MSG_WARNING, "%s:\txattr difference may be bogus: %s\n",
+ real->path, NO_XATTR_MSG);
+ }
}
/*
@@ -235,9 +244,16 @@ compare_fix(struct metaentry *real, struct metaentry *stored, int cmp)
msg(MSG_NORMAL, "%s:\tremoving xattr %s\n",
real->path, real->xattr_names[i]);
+ if (NO_XATTR) {
+ msg(MSG_WARNING, "%s:\tremoving xattr %s failed: %s\n",
+ real->path, real->xattr_names[i], NO_XATTR_MSG);
+ }
+#if !defined(NO_XATTR) || !NO_XATTR
+ else
if (lremovexattr(real->path, real->xattr_names[i]))
msg(MSG_DEBUG, "\tlremovexattr failed: %s\n",
strerror(errno));
+#endif /* !NO_XATTR */
}
for (i = 0; i < stored->xattrs; i++) {
@@ -247,12 +263,19 @@ compare_fix(struct metaentry *real, struct metaentry *stored, int cmp)
msg(MSG_NORMAL, "%s:\tadding xattr %s\n",
stored->path, stored->xattr_names[i]);
+ if (NO_XATTR) {
+ msg(MSG_WARNING, "%s:\tadding xattr %s failed: %s\n",
+ stored->path, stored->xattr_names[i], NO_XATTR_MSG);
+ }
+#if !defined(NO_XATTR) || !NO_XATTR
+ else
if (lsetxattr(stored->path, stored->xattr_names[i],
stored->xattr_values[i],
stored->xattr_lvalues[i], XATTR_CREATE)
)
msg(MSG_DEBUG, "\tlsetxattr failed: %s\n",
strerror(errno));
+#endif /* !NO_XATTR */
}
}
}
@@ -401,6 +424,10 @@ version(void)
{
printf("metastore %s\n", METASTORE_VER);
+ if (NO_XATTR) {
+ printf("Built with %s.\n", NO_XATTR_MSG);
+ }
+
exit(EXIT_SUCCESS);
}