summaryrefslogtreecommitdiffhomepage
path: root/src/logic/tpax_archive_write.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/logic/tpax_archive_write.c')
-rw-r--r--src/logic/tpax_archive_write.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/logic/tpax_archive_write.c b/src/logic/tpax_archive_write.c
index a881bd9..f01bb7b 100644
--- a/src/logic/tpax_archive_write.c
+++ b/src/logic/tpax_archive_write.c
@@ -110,6 +110,7 @@ static int tpax_archive_write_impl(
int fdcwd,
int fdout)
{
+ int ret;
struct tpax_unit_ctx * uctx;
struct tpax_ustar_header uhdr;
const struct stat * st;
@@ -210,9 +211,14 @@ static int tpax_archive_write_impl(
dpos = hpos + sizeof(uhdr);
/* header */
- if (tpax_meta_init_ustar_header(
- dctx,apath,st,
- slnk,&uhdr) < 0)
+ if (dctx->cctx->drvflags & TPAX_DRIVER_WRITE_FORMAT_RUSTAR) {
+ ret = tpax_meta_init_rustar_header(apath,st,slnk,&uhdr);
+
+ } else if (dctx->cctx->drvflags & TPAX_DRIVER_WRITE_FORMAT_USTAR) {
+ ret = tpax_meta_init_ustar_header(apath,st,slnk,&uhdr);
+ }
+
+ if (ret < 0)
return tpax_archive_write_ret(
TPAX_NESTED_ERROR(dctx),
dctx,uctx);