aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-07-03 15:08:15 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-07-03 15:17:57 +0200
commit70dcf39f5926a66d76eb9fde2cbaef4b6a23a9e1 (patch)
treee4bfefd6c4559ad3abbd89af546099cb56a24040 /include
parentb8d4983147141310383d423b1bcb9d19a490977a (diff)
tar writer: replace PAX headers with GNU extensions
Some experiments seem to indicate that the various GNU extensions are more widely supported than their POSIX equivalents[1]. Possibly because they are easier to implement and possibly because of the wide spread use of GNU tar. This commit replaces the PAX writer in the write_tar_header implementation with a GNU extension based writer. The writer is also cleaned up by removing all global state. The record counter is moved outside into the tar2sqfs program and passed in as function argument. [1] https://dev.gentoo.org/~mgorny/articles/portability-of-tar-features.html Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include')
-rw-r--r--include/tar.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/tar.h b/include/tar.h
index ef4fdec..fd701d9 100644
--- a/include/tar.h
+++ b/include/tar.h
@@ -89,9 +89,12 @@ typedef struct {
/*
Returns < 0 on failure, > 0 if cannot encode, 0 on success.
Prints error/warning messages to stderr.
+
+ The counter is an incremental record counter used if additional
+ headers need to be generated.
*/
int write_tar_header(int fd, const struct stat *sb, const char *name,
- const char *slink_target);
+ const char *slink_target, unsigned int counter);
/* calcuate and skip the zero padding */
int skip_padding(int fd, uint64_t size);