summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive_private.h
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2004-05-27 05:02:35 +0000
committerkientzle <kientzle@FreeBSD.org>2004-05-27 05:02:35 +0000
commit812f2e1f5c817f41bd0249adc54627e2c1b07813 (patch)
tree3a88ed025e84b0746874bde11edd8e00ce951c37 /lib/libarchive/archive_private.h
parentcd6cc0b3f2134221e9a61c278d55c7ce780f1ae0 (diff)
downloadFreeBSD-src-812f2e1f5c817f41bd0249adc54627e2c1b07813.zip
FreeBSD-src-812f2e1f5c817f41bd0249adc54627e2c1b07813.tar.gz
Previously, restoring an archive with hardlinked files that had
certain flags set (e.g., schg or uappend) would fail because the flags were restored before the hardlink was created. To address this, I've generalized the existing machinery for deferring directory timestamp/mode restoration and used it to defer the restoration of highly-restrictive flags to the end of the extraction, after any links have been created. Pointed out by: Pawel Jakub Dawidek (pjd@)
Diffstat (limited to 'lib/libarchive/archive_private.h')
-rw-r--r--lib/libarchive/archive_private.h11
1 files changed, 2 insertions, 9 deletions
diff --git a/lib/libarchive/archive_private.h b/lib/libarchive/archive_private.h
index f3d3b87..cd5fc59 100644
--- a/lib/libarchive/archive_private.h
+++ b/lib/libarchive/archive_private.h
@@ -37,13 +37,6 @@
#define ARCHIVE_WRITE_MAGIC (0xb0c5c0deU)
#define ARCHIVE_READ_MAGIC (0xdeb0c5U)
-/*
- * This is used by archive_extract to keep track of non-writable
- * directories so that they can be initially restored writable, then
- * fixed up at end. This also handles mtime/atime fixups.
- */
-struct archive_extract_dir_entry;
-
struct archive {
/*
* The magic/state values are used to sanity-check the
@@ -190,8 +183,8 @@ struct archive {
/*
* Various information needed by archive_extract.
*/
- struct archive_string extract_mkdirpath;
- struct archive_extract_dir_entry *archive_extract_dir_list;
+ struct archive_string extract_mkdirpath;
+ struct archive_extract_fixup *archive_extract_fixup;
void (*extract_progress)(void *);
void *extract_progress_user_data;
void (*cleanup_archive_extract)(struct archive *);
OpenPOWER on IntegriCloud