From 4d84e869bf4b73cba8cb27ace63c49cb49baa492 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 6 Apr 2021 11:03:43 +0200 Subject: [PATCH] server/rest: add helper to extract compression headers for now we only extract 'deflate' Signed-off-by: Dominik Csapak --- src/server/rest.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/server/rest.rs b/src/server/rest.rs index 1cd26787..02258eab 100644 --- a/src/server/rest.rs +++ b/src/server/rest.rs @@ -39,6 +39,7 @@ use crate::api2::types::{Authid, Userid}; use crate::auth_helpers::*; use crate::config::cached_user_info::CachedUserInfo; use crate::tools; +use crate::tools::compression::CompressionMethod; use crate::tools::FileLogger; extern "C" { @@ -587,6 +588,21 @@ fn extract_lang_header(headers: &http::HeaderMap) -> Option { None } +// FIXME: support handling multiple compression methods +fn extract_compression_method(headers: &http::HeaderMap) -> Option { + if let Some(raw_encoding) = headers.get(header::ACCEPT_ENCODING) { + if let Ok(encoding) = raw_encoding.to_str() { + for encoding in encoding.split(&[',', ' '][..]) { + if let Ok(method) = encoding.parse() { + return Some(method); + } + } + } + } + + None +} + async fn handle_request( api: Arc, req: Request,