remove DataChunk file format - use DataBlob instead

This commit is contained in:
Dietmar Maurer
2019-10-06 10:31:06 +02:00
parent c26d4b4573
commit 4ee8f53d07
12 changed files with 184 additions and 453 deletions

View File

@ -678,7 +678,7 @@ impl BackupClient {
if sign_only {
DataBlob::create_signed(&data, crypt_config, compress)?
} else {
DataBlob::encode(&data, Some(crypt_config.clone()), compress)?
DataBlob::encode(&data, Some(crypt_config), compress)?
}
} else {
DataBlob::encode(&data, None, compress)?
@ -936,7 +936,7 @@ impl BackupClient {
.compress(true);
if let Some(ref crypt_config) = crypt_config {
chunk_builder = chunk_builder.crypt_config(crypt_config);
chunk_builder = chunk_builder.crypt_config(crypt_config.clone());
}
let mut known_chunks = known_chunks.lock().unwrap();
@ -957,8 +957,9 @@ impl BackupClient {
known_chunks.insert(*digest);
future::ready(chunk_builder
.build()
.map(move |chunk| MergedChunkInfo::New(ChunkInfo {
.map(move |(chunk, digest)| MergedChunkInfo::New(ChunkInfo {
chunk,
digest,
chunk_len: chunk_len as u64,
offset,
}))
@ -970,7 +971,7 @@ impl BackupClient {
if let MergedChunkInfo::New(chunk_info) = merged_chunk_info {
let offset = chunk_info.offset;
let digest = *chunk_info.chunk.digest();
let digest = chunk_info.digest;
let digest_str = digest_to_hex(&digest);
println!("upload new chunk {} ({} bytes, offset {})", digest_str,

View File

@ -4,7 +4,7 @@ use std::sync::Arc;
use failure::*;
use super::BackupReader;
use crate::backup::{ReadChunk, DataChunk, CryptConfig};
use crate::backup::{ReadChunk, DataBlob, CryptConfig};
/// Read chunks from remote host using ``BackupReader``
pub struct RemoteChunkReader {
@ -43,13 +43,12 @@ impl ReadChunk for RemoteChunkReader {
futures::executor::block_on(self.client.download_chunk(&digest, &mut chunk_data))?;
let chunk = DataChunk::from_raw(chunk_data, *digest)?;
let chunk = DataBlob::from_raw(chunk_data)?;
chunk.verify_crc()?;
let raw_data = match self.crypt_config {
Some(ref crypt_config) => chunk.decode(Some(crypt_config))?,
None => chunk.decode(None)?,
};
let raw_data = chunk.decode(self.crypt_config.clone())?;
// fixme: verify chunk digest
if use_cache {
self.cache.insert(*digest, raw_data.to_vec());