From 3c80cc18748d18963e794e06baca8283f6ac4f43 Mon Sep 17 00:00:00 2001 From: Ali MJ Al-Nasrawy Date: Wed, 19 May 2021 23:23:30 +0300 Subject: Simplify custom headers Signed-off-by: Ali MJ Al-Nasrawy --- src/args.rs | 6 ++---- src/main.rs | 15 ++++----------- 2 files changed, 6 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/args.rs b/src/args.rs index 5467573..ff8d92b 100644 --- a/src/args.rs +++ b/src/args.rs @@ -1,4 +1,3 @@ -use bytes::Bytes; use clap::{Clap, ValueHint}; use clap_generate::Shell; use http::header::{HeaderMap, HeaderName, HeaderValue}; @@ -212,15 +211,14 @@ fn parse_auth(src: &str) -> Result { /// Custom header parser (allow multiple headers input) pub fn parse_header(src: &str) -> Result { let mut headers = [httparse::EMPTY_HEADER; 1]; - let mut header = src.to_string(); - header.push('\n'); + let header = format!("{}\n", src); httparse::parse_headers(header.as_bytes(), &mut headers)?; let mut header_map = HeaderMap::new(); if let Some(h) = headers.first() { if h.name != httparse::EMPTY_HEADER.name { header_map.insert( - HeaderName::from_bytes(&Bytes::copy_from_slice(h.name.as_bytes())).unwrap(), + HeaderName::from_bytes(h.name.as_bytes()).unwrap(), HeaderValue::from_bytes(h.value).unwrap(), ); } diff --git a/src/main.rs b/src/main.rs index e5cc596..4ea1154 100644 --- a/src/main.rs +++ b/src/main.rs @@ -275,17 +275,10 @@ fn create_tcp_listener(addr: SocketAddr) -> io::Result { } fn configure_header(conf: &MiniserveConfig) -> middleware::DefaultHeaders { - let headers = conf.clone().header; - - let mut default_headers = middleware::DefaultHeaders::new(); - for header in headers { - for (header_name, header_value) in header.into_iter() { - if let Some(header_name) = header_name { - default_headers = default_headers.header(&header_name, header_value); - } - } - } - default_headers + conf.header.iter().flatten().fold( + middleware::DefaultHeaders::new(), + |headers, (header_name, header_value)| headers.header(header_name, header_value), + ) } /// Configures the Actix application -- cgit v1.2.3