diff --git a/src/client/http_client.rs b/src/client/http_client.rs index 80920701..f1c71279 100644 --- a/src/client/http_client.rs +++ b/src/client/http_client.rs @@ -582,9 +582,9 @@ impl BackupClient { } MergedChunkInfo::Known(chunk_list) => { let mut digest_list = vec![]; - for chunk_info in chunk_list { + for (_offset, digest) in chunk_list { //println!("append existing chunk ({} bytes)", chunk_info.data.len()); - digest_list.push(tools::digest_to_hex(&chunk_info.digest)); + digest_list.push(tools::digest_to_hex(&digest)); } println!("append existing chunks ({})", digest_list.len()); let param = json!({ "wid": wid, "digest-list": digest_list }); diff --git a/src/client/merge_known_chunks.rs b/src/client/merge_known_chunks.rs index 8010302d..43c0ce02 100644 --- a/src/client/merge_known_chunks.rs +++ b/src/client/merge_known_chunks.rs @@ -10,7 +10,7 @@ pub struct ChunkInfo { } pub enum MergedChunkInfo { - Known(Vec), + Known(Vec<(u64,[u8;32])>), New(ChunkInfo), } @@ -65,11 +65,11 @@ impl Stream for MergeKnownChunksQueue match last { None => { - self.buffer = Some(MergedChunkInfo::Known(vec![chunk_info])); + self.buffer = Some(MergedChunkInfo::Known(vec![(chunk_info.offset, chunk_info.digest)])); // continue } Some(MergedChunkInfo::Known(mut list)) => { - list.push(chunk_info); + list.push((chunk_info.offset, chunk_info.digest)); let len = list.len(); self.buffer = Some(MergedChunkInfo::Known(list)); @@ -80,7 +80,7 @@ impl Stream for MergeKnownChunksQueue } Some(MergedChunkInfo::New(_)) => { - self.buffer = Some(MergedChunkInfo::Known(vec![chunk_info])); + self.buffer = Some(MergedChunkInfo::Known(vec![(chunk_info.offset, chunk_info.digest)])); return Ok(Async::Ready(last)); } }