[pve-devel] [PATCH backup 1/1] fix #4995: pxar: Include symlinks in zip file restore
Filip Schauer
f.schauer at proxmox.com
Mon Nov 20 12:54:31 CET 2023
Signed-off-by: Filip Schauer <f.schauer at proxmox.com>
---
pbs-client/src/pxar/extract.rs | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/pbs-client/src/pxar/extract.rs b/pbs-client/src/pxar/extract.rs
index f78e06c2..6f23c144 100644
--- a/pbs-client/src/pxar/extract.rs
+++ b/pbs-client/src/pxar/extract.rs
@@ -998,6 +998,7 @@ where
metadata.stat.mtime.secs,
metadata.stat.mode as u16,
false,
+ None,
);
zip.add_entry::<FileContents<T>>(entry, None).await?;
}
@@ -1017,6 +1018,7 @@ where
metadata.stat.mtime.secs,
metadata.stat.mode as u16,
true,
+ None,
);
zip.add_entry(entry, decoder.contents())
.await
@@ -1035,6 +1037,7 @@ where
metadata.stat.mtime.secs,
metadata.stat.mode as u16,
true,
+ None,
);
zip.add_entry(entry, decoder.contents())
.await
@@ -1047,9 +1050,24 @@ where
metadata.stat.mtime.secs,
metadata.stat.mode as u16,
false,
+ None,
);
zip.add_entry::<FileContents<T>>(entry, None).await?;
}
+ EntryKind::Symlink(link) => {
+ log::debug!("adding '{}' to zip", path.display());
+ let realpath = Path::new(link);
+
+ let entry = ZipEntry::new(
+ path,
+ metadata.stat.mtime.secs,
+ metadata.stat.mode as u16,
+ true,
+ Some(realpath),
+ );
+
+ zip.add_entry::<FileContents<T>>(entry, None).await?;
+ }
_ => {} // ignore all else
};
}
--
2.39.2
More information about the pve-devel
mailing list