#define ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS (0x0008)
/* Default: Xattrs are read from disk. */
#define ARCHIVE_READDISK_NO_XATTR (0x0010)
+/* Default: ACLs are read from disk. */
+#define ARCHIVE_READDISK_NO_ACL (0x0020)
__LA_DECL int archive_read_disk_set_behavior(struct archive *,
int flags);
}
#endif /* HAVE_READLINK || HAVE_READLINKAT */
- r = setup_acls(a, entry, &fd);
+ r = 0;
+ if (!a->suppress_acl)
+ r = setup_acls(a, entry, &fd);
if (!a->suppress_xattr) {
r1 = setup_xattrs(a, entry, &fd);
if (r1 < r)
a->suppress_xattr = 1;
else
a->suppress_xattr = 0;
+ if (flags & ARCHIVE_READDISK_NO_ACL)
+ a->suppress_acl = 1;
+ else
+ a->suppress_acl = 0;
return (r);
}
int traverse_mount_points;
/* Set 1 if users want to suppress xattr information. */
int suppress_xattr;
+ /* Set 1 if users want to suppress ACL information. */
+ int suppress_acl;
const char * (*lookup_gname)(void *private, int64_t gid);
void (*cleanup_gname)(void *private);