server/rest: add helper to extract compression headers

for now we only extract 'deflate'

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2021-04-06 11:03:43 +02:00 committed by Thomas Lamprecht
parent 79d841014e
commit 4d84e869bf

View File

@ -39,6 +39,7 @@ use crate::api2::types::{Authid, Userid};
use crate::auth_helpers::*; use crate::auth_helpers::*;
use crate::config::cached_user_info::CachedUserInfo; use crate::config::cached_user_info::CachedUserInfo;
use crate::tools; use crate::tools;
use crate::tools::compression::CompressionMethod;
use crate::tools::FileLogger; use crate::tools::FileLogger;
extern "C" { extern "C" {
@ -587,6 +588,21 @@ fn extract_lang_header(headers: &http::HeaderMap) -> Option<String> {
None None
} }
// FIXME: support handling multiple compression methods
fn extract_compression_method(headers: &http::HeaderMap) -> Option<CompressionMethod> {
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( async fn handle_request(
api: Arc<ApiConfig>, api: Arc<ApiConfig>,
req: Request<Body>, req: Request<Body>,