diff --git a/src/api2/backup.rs b/src/api2/backup.rs index 95026e75..b32e93e7 100644 --- a/src/api2/backup.rs +++ b/src/api2/backup.rs @@ -34,7 +34,7 @@ pub fn router() -> Router { pub fn api_method_upgrade_backup() -> ApiAsyncMethod { ApiAsyncMethod::new( upgrade_to_backup_protocol, - ObjectSchema::new("Upgraded to backup protocol.") + ObjectSchema::new(concat!("Upgraded to backup protocol ('", PROXMOX_BACKUP_PROTOCOL_ID_V1!(), "').")) .required("store", StringSchema::new("Datastore name.")) .required("backup-type", StringSchema::new("Backup type.") .format(Arc::new(ApiStringFormat::Enum(&["vm", "ct", "host"])))) @@ -66,7 +66,7 @@ fn upgrade_to_backup_protocol( .ok_or_else(|| format_err!("missing Upgrade header"))? .to_str()?; - if protocols != PROXMOX_BACKUP_PROTOCOL_ID_V1 { + if protocols != PROXMOX_BACKUP_PROTOCOL_ID_V1!() { bail!("invalid protocol name"); } @@ -143,7 +143,7 @@ fn upgrade_to_backup_protocol( let response = Response::builder() .status(StatusCode::SWITCHING_PROTOCOLS) - .header(UPGRADE, HeaderValue::from_static(PROXMOX_BACKUP_PROTOCOL_ID_V1)) + .header(UPGRADE, HeaderValue::from_static(PROXMOX_BACKUP_PROTOCOL_ID_V1!())) .body(Body::empty())?; Ok(Box::new(futures::future::ok(response))) diff --git a/src/backup.rs b/src/backup.rs index 0cf8bc33..e6aa8e2a 100644 --- a/src/backup.rs +++ b/src/backup.rs @@ -102,7 +102,10 @@ //! //! Not sure if this is better. TODO -pub const PROXMOX_BACKUP_PROTOCOL_ID_V1: &str = "proxmox-backup-protocol-v1"; +#[macro_export] +macro_rules! PROXMOX_BACKUP_PROTOCOL_ID_V1 { + () => { "proxmox-backup-protocol-v1" } +} mod chunk_stream; pub use chunk_stream::*; diff --git a/src/client/http_client.rs b/src/client/http_client.rs index 59802c0b..7deb63d1 100644 --- a/src/client/http_client.rs +++ b/src/client/http_client.rs @@ -23,6 +23,8 @@ use crate::tools::{self, BroadcastFuture, tty}; use super::pipe_to_stream::*; use super::merge_known_chunks::*; +use crate::backup::*; + #[derive(Clone)] struct AuthInfo { @@ -269,7 +271,7 @@ impl HttpClient { let enc_ticket = format!("PBSAuthCookie={}", percent_encode(auth.ticket.as_bytes(), DEFAULT_ENCODE_SET)); req.headers_mut().insert("Cookie", HeaderValue::from_str(&enc_ticket).unwrap()); - req.headers_mut().insert("UPGRADE", HeaderValue::from_str(crate::backup::PROXMOX_BACKUP_PROTOCOL_ID_V1).unwrap()); + req.headers_mut().insert("UPGRADE", HeaderValue::from_str(PROXMOX_BACKUP_PROTOCOL_ID_V1!()).unwrap()); client.request(req) .map_err(Error::from) @@ -635,7 +637,7 @@ impl BackupClient { let mut release_capacity = body.release_capacity().clone(); - crate::backup::DigestListDecoder::new(body.map_err(Error::from)) + DigestListDecoder::new(body.map_err(Error::from)) .for_each(move |chunk| { let _ = release_capacity.release_capacity(chunk.len()); println!("GOT DOWNLOAD {}", tools::digest_to_hex(&chunk)); diff --git a/src/lib.rs b/src/lib.rs index 4c5e94b7..5fa1f82f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,6 +14,7 @@ pub mod pxar; pub mod section_config; +#[macro_use] pub mod backup; pub mod config;