update to zstd 0.6

compatible with libzstd from bullseye.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2021-06-02 12:14:37 +02:00 committed by Dietmar Maurer
parent 2165f0d450
commit 90ff75f85c
5 changed files with 19 additions and 19 deletions

View File

@ -78,7 +78,7 @@ url = "2.1"
walkdir = "2" walkdir = "2"
webauthn-rs = "0.2.5" webauthn-rs = "0.2.5"
xdg = "2.2" xdg = "2.2"
zstd = { version = "0.4", features = [ "bindgen" ] } zstd = { version = "0.6", features = [ "bindgen" ] }
nom = "5.1" nom = "5.1"
crossbeam-channel = "0.5" crossbeam-channel = "0.5"

4
debian/control vendored
View File

@ -81,8 +81,8 @@ Build-Depends: debhelper (>= 11),
librust-walkdir-2+default-dev, librust-walkdir-2+default-dev,
librust-webauthn-rs-0.2+default-dev (>= 0.2.5-~~), librust-webauthn-rs-0.2+default-dev (>= 0.2.5-~~),
librust-xdg-2+default-dev (>= 2.2-~~), librust-xdg-2+default-dev (>= 2.2-~~),
librust-zstd-0.4+bindgen-dev, librust-zstd-0.6+bindgen-dev,
librust-zstd-0.4+default-dev, librust-zstd-0.6+default-dev,
libacl1-dev, libacl1-dev,
libfuse3-dev, libfuse3-dev,
libsystemd-dev, libsystemd-dev,

View File

@ -5,23 +5,23 @@ use proxmox::tools::io::ReadExt;
use super::*; use super::*;
enum BlobReaderState<R: Read> { enum BlobReaderState<'reader, R: Read> {
Uncompressed { expected_crc: u32, csum_reader: ChecksumReader<R> }, Uncompressed { expected_crc: u32, csum_reader: ChecksumReader<R> },
Compressed { expected_crc: u32, decompr: zstd::stream::read::Decoder<BufReader<ChecksumReader<R>>> }, Compressed { expected_crc: u32, decompr: zstd::stream::read::Decoder<'reader, BufReader<ChecksumReader<R>>> },
Encrypted { expected_crc: u32, decrypt_reader: CryptReader<BufReader<ChecksumReader<R>>> }, Encrypted { expected_crc: u32, decrypt_reader: CryptReader<BufReader<ChecksumReader<R>>> },
EncryptedCompressed { expected_crc: u32, decompr: zstd::stream::read::Decoder<BufReader<CryptReader<BufReader<ChecksumReader<R>>>>> }, EncryptedCompressed { expected_crc: u32, decompr: zstd::stream::read::Decoder<'reader, BufReader<CryptReader<BufReader<ChecksumReader<R>>>>> },
} }
/// Read data blobs /// Read data blobs
pub struct DataBlobReader<R: Read> { pub struct DataBlobReader<'reader, R: Read> {
state: BlobReaderState<R>, state: BlobReaderState<'reader, R>,
} }
// zstd_safe::DCtx is not sync but we are, since // zstd_safe::DCtx is not sync but we are, since
// the only public interface is on mutable reference // the only public interface is on mutable reference
unsafe impl<R: Read> Sync for DataBlobReader<R> {} unsafe impl<R: Read> Sync for DataBlobReader<'_, R> {}
impl <R: Read> DataBlobReader<R> { impl <R: Read> DataBlobReader<'_, R> {
pub fn new(mut reader: R, config: Option<Arc<CryptConfig>>) -> Result<Self, Error> { pub fn new(mut reader: R, config: Option<Arc<CryptConfig>>) -> Result<Self, Error> {
@ -104,7 +104,7 @@ impl <R: Read> DataBlobReader<R> {
} }
} }
impl <R: Read> Read for DataBlobReader<R> { impl <R: Read> Read for DataBlobReader<'_, R> {
fn read(&mut self, buf: &mut [u8]) -> Result<usize, std::io::Error> { fn read(&mut self, buf: &mut [u8]) -> Result<usize, std::io::Error> {
match &mut self.state { match &mut self.state {

View File

@ -5,19 +5,19 @@ use proxmox::tools::io::WriteExt;
use super::*; use super::*;
enum BlobWriterState<W: Write> { enum BlobWriterState<'writer, W: Write> {
Uncompressed { csum_writer: ChecksumWriter<W> }, Uncompressed { csum_writer: ChecksumWriter<W> },
Compressed { compr: zstd::stream::write::Encoder<ChecksumWriter<W>> }, Compressed { compr: zstd::stream::write::Encoder<'writer, ChecksumWriter<W>> },
Encrypted { crypt_writer: CryptWriter<ChecksumWriter<W>> }, Encrypted { crypt_writer: CryptWriter<ChecksumWriter<W>> },
EncryptedCompressed { compr: zstd::stream::write::Encoder<CryptWriter<ChecksumWriter<W>>> }, EncryptedCompressed { compr: zstd::stream::write::Encoder<'writer, CryptWriter<ChecksumWriter<W>>> },
} }
/// Data blob writer /// Data blob writer
pub struct DataBlobWriter<W: Write> { pub struct DataBlobWriter<'writer, W: Write> {
state: BlobWriterState<W>, state: BlobWriterState<'writer, W>,
} }
impl <W: Write + Seek> DataBlobWriter<W> { impl <W: Write + Seek> DataBlobWriter<'_, W> {
pub fn new_uncompressed(mut writer: W) -> Result<Self, Error> { pub fn new_uncompressed(mut writer: W) -> Result<Self, Error> {
writer.seek(SeekFrom::Start(0))?; writer.seek(SeekFrom::Start(0))?;
@ -133,7 +133,7 @@ impl <W: Write + Seek> DataBlobWriter<W> {
} }
} }
impl <W: Write + Seek> Write for DataBlobWriter<W> { impl <W: Write + Seek> Write for DataBlobWriter<'_, W> {
fn write(&mut self, buf: &[u8]) -> Result<usize, std::io::Error> { fn write(&mut self, buf: &[u8]) -> Result<usize, std::io::Error> {
match self.state { match self.state {

View File

@ -148,7 +148,7 @@ impl BackupReader {
&self, &self,
manifest: &BackupManifest, manifest: &BackupManifest,
name: &str, name: &str,
) -> Result<DataBlobReader<File>, Error> { ) -> Result<DataBlobReader<'_, File>, Error> {
let mut tmpfile = std::fs::OpenOptions::new() let mut tmpfile = std::fs::OpenOptions::new()
.write(true) .write(true)