From df9109d49367d9ff8c667ac8686e20183e2edb8a Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Wed, 29 Jul 2020 09:38:11 +0200 Subject: [PATCH] bump proxmox to 0.3, cleanup http_err macro usage Also swap the order of a couple of `.map_err().await` to `.await.map_err()` since that's generally more efficient. Signed-off-by: Wolfgang Bumiller --- src/server/h2service.rs | 4 ++-- src/server/rest.rs | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/server/h2service.rs b/src/server/h2service.rs index 453495d0..0bb735b8 100644 --- a/src/server/h2service.rs +++ b/src/server/h2service.rs @@ -44,7 +44,7 @@ impl H2Service { let (path, components) = match tools::normalize_uri_path(parts.uri.path()) { Ok((p,c)) => (p, c), - Err(err) => return future::err(http_err!(BAD_REQUEST, err.to_string())).boxed(), + Err(err) => return future::err(http_err!(BAD_REQUEST, "{}", err)).boxed(), }; self.debug(format!("{} {}", method, path)); @@ -55,7 +55,7 @@ impl H2Service { match self.router.find_method(&components, method, &mut uri_param) { None => { - let err = http_err!(NOT_FOUND, format!("Path '{}' not found.", path).to_string()); + let err = http_err!(NOT_FOUND, "Path '{}' not found.", path); future::ok((formatter.format_error)(err)).boxed() } Some(api_method) => { diff --git a/src/server/rest.rs b/src/server/rest.rs index 09b68489..9547b90e 100644 --- a/src/server/rest.rs +++ b/src/server/rest.rs @@ -204,13 +204,13 @@ async fn get_request_parameters( } let body = req_body - .map_err(|err| http_err!(BAD_REQUEST, format!("Promlems reading request body: {}", err))) + .map_err(|err| http_err!(BAD_REQUEST, "Promlems reading request body: {}", err)) .try_fold(Vec::new(), |mut acc, chunk| async move { if acc.len() + chunk.len() < 64*1024 { //fimxe: max request body size? acc.extend_from_slice(&*chunk); Ok(acc) } else { - Err(http_err!(BAD_REQUEST, "Request body too large".to_string())) + Err(http_err!(BAD_REQUEST, "Request body too large")) } }).await?; @@ -392,12 +392,12 @@ async fn simple_static_file_download(filename: PathBuf) -> Result let mut file = File::open(filename) .await - .map_err(|err| http_err!(BAD_REQUEST, format!("File open failed: {}", err)))?; + .map_err(|err| http_err!(BAD_REQUEST, "File open failed: {}", err))?; let mut data: Vec = Vec::new(); file.read_to_end(&mut data) .await - .map_err(|err| http_err!(BAD_REQUEST, format!("File read failed: {}", err)))?; + .map_err(|err| http_err!(BAD_REQUEST, "File read failed: {}", err))?; let mut response = Response::new(data.into()); response.headers_mut().insert( @@ -411,7 +411,7 @@ async fn chuncked_static_file_download(filename: PathBuf) -> Result Result Result, Error> { let metadata = tokio::fs::metadata(filename.clone()) - .map_err(|err| http_err!(BAD_REQUEST, format!("File access problems: {}", err))) + .map_err(|err| http_err!(BAD_REQUEST, "File access problems: {}", err)) .await?; if metadata.len() < 1024*32 { @@ -535,7 +535,7 @@ pub async fn handle_request(api: Arc, req: Request) -> Result rpcenv.set_user(Some(username)), Err(err) => { // always delay unauthorized calls by 3 seconds (from start of request) - let err = http_err!(UNAUTHORIZED, format!("authentication failed - {}", err)); + let err = http_err!(UNAUTHORIZED, "authentication failed - {}", err); tokio::time::delay_until(Instant::from_std(delay_unauth_time)).await; return Ok((formatter.format_error)(err)); } @@ -544,13 +544,13 @@ pub async fn handle_request(api: Arc, req: Request) -> Result { - let err = http_err!(NOT_FOUND, format!("Path '{}' not found.", path).to_string()); + let err = http_err!(NOT_FOUND, "Path '{}' not found.", path); return Ok((formatter.format_error)(err)); } Some(api_method) => { let user = rpcenv.get_user(); if !check_api_permission(api_method.access.permission, user.as_deref(), &uri_param, user_info.as_ref()) { - let err = http_err!(FORBIDDEN, format!("permission check failed")); + let err = http_err!(FORBIDDEN, "permission check failed"); tokio::time::delay_until(Instant::from_std(access_forbidden_time)).await; return Ok((formatter.format_error)(err)); } @@ -598,5 +598,5 @@ pub async fn handle_request(api: Arc, req: Request) -> Result