diff options
author | Dean Li <deantvv@gmail.com> | 2021-02-22 04:11:11 +0000 |
---|---|---|
committer | Dean Li <deantvv@gmail.com> | 2021-02-24 13:33:42 +0000 |
commit | 7b4402238a19f187321a68088e6542d8d5fa8572 (patch) | |
tree | d89123fdef026be193110feed297d64c3e34bb14 /src/main.rs | |
parent | Allow set custom headers from CLI (diff) | |
download | miniserve-7b4402238a19f187321a68088e6542d8d5fa8572.tar.gz miniserve-7b4402238a19f187321a68088e6542d8d5fa8572.zip |
Move the parsing header logic to args.rs
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/src/main.rs b/src/main.rs index 149381f..0dd692e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ use actix_web::{ }; use actix_web::{middleware, App, HttpRequest, HttpResponse}; use actix_web_httpauth::middleware::HttpAuthentication; +use args::Header; use std::io::{self, Write}; use std::net::{IpAddr, Ipv4Addr, SocketAddr}; use std::thread; @@ -90,7 +91,7 @@ pub struct MiniserveConfig { pub title: Option<String>, /// If specified, header will be added - pub header: Option<String>, + pub header: Option<Header>, } fn main() { @@ -284,26 +285,13 @@ async fn run() -> Result<(), ContextualError> { } fn configure_header(conf: &MiniserveConfig) -> middleware::DefaultHeaders { - let mut headers = [httparse::EMPTY_HEADER; 16]; + let header = conf.clone().header; - match conf.clone().header { - Some(mut header) => { - // parse_headers need header newline ends - header.push('\n'); - httparse::parse_headers(header.as_bytes(), &mut headers).expect("Bad header"); - - let mut header_middleware = middleware::DefaultHeaders::new(); - - for h in headers.iter() { - if h.name != httparse::EMPTY_HEADER.name { - println!("h={:?}", h); - header_middleware = header_middleware.header(h.name, h.value); - } - } - - header_middleware + match header { + Some(header) if header.name != httparse::EMPTY_HEADER.name => { + middleware::DefaultHeaders::new().header(&header.name, header.value) } - None => middleware::DefaultHeaders::new(), + _ => middleware::DefaultHeaders::new(), } } |