From c807d231eb2bc7b7d31354ea9310927f1e475fb4 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Tue, 6 Aug 2019 11:26:06 +0200 Subject: [PATCH] src/client/http_client.rs: compute file checksums --- src/bin/proxmox-backup-client.rs | 1 + src/client/http_client.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/bin/proxmox-backup-client.rs b/src/bin/proxmox-backup-client.rs index 7ef1511d..3b4501c3 100644 --- a/src/bin/proxmox-backup-client.rs +++ b/src/bin/proxmox-backup-client.rs @@ -658,6 +658,7 @@ fn create_backup( acc.push(json!({ "filename": filename, "size": stats.size, + "csum": proxmox::tools::digest_to_hex(&stats.csum), })); acc }); diff --git a/src/client/http_client.rs b/src/client/http_client.rs index 741fbfac..ee7202a8 100644 --- a/src/client/http_client.rs +++ b/src/client/http_client.rs @@ -564,6 +564,7 @@ impl Drop for BackupClient { pub struct BackupStats { pub size: u64, + pub csum: [u8; 32], } impl BackupClient { @@ -625,10 +626,11 @@ impl BackupClient { Ok(raw_data) }) .and_then(move |raw_data| { + let csum = openssl::sha::sha256(&raw_data); let param = json!({"encoded-size": raw_data.len(), "file-name": file_name }); h2.upload("blob", Some(param), raw_data) .map(move |_| { - BackupStats { size: size } + BackupStats { size, csum } }) }) } @@ -661,10 +663,11 @@ impl BackupClient { Ok((raw_data, contents.len())) }) .and_then(move |(raw_data, size)| { + let csum = openssl::sha::sha256(&raw_data); let param = json!({"encoded-size": raw_data.len(), "file-name": file_name }); h2.upload("blob", Some(param), raw_data) .map(move |_| { - BackupStats { size: size as u64 } + BackupStats { size: size as u64, csum } }) }) }); @@ -713,7 +716,7 @@ impl BackupClient { }); h2_4.post(&close_path, Some(param)) .map(move |_| { - BackupStats { size: size as u64 } + BackupStats { size: size as u64, csum: [0u8; 32] } }) }) })