aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorDean Li <deantvv@gmail.com>2021-02-22 06:11:18 +0000
committerDean Li <deantvv@gmail.com>2021-02-27 15:44:16 +0000
commit956ce204b4bda191c441fe5c4d385baa92c82b3e (patch)
tree8a77dee3301dca6e7a65a136b8d6e0b11034167f /src/main.rs
parentAdd test for custom header (diff)
downloadminiserve-956ce204b4bda191c441fe5c4d385baa92c82b3e.tar.gz
miniserve-956ce204b4bda191c441fe5c4d385baa92c82b3e.zip
Multiple headers support for custom headers
Diffstat (limited to '')
-rw-r--r--src/main.rs20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/main.rs b/src/main.rs
index 0dd692e..44298d7 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -5,7 +5,7 @@ use actix_web::{
};
use actix_web::{middleware, App, HttpRequest, HttpResponse};
use actix_web_httpauth::middleware::HttpAuthentication;
-use args::Header;
+use http::header::HeaderMap;
use std::io::{self, Write};
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use std::thread;
@@ -91,7 +91,7 @@ pub struct MiniserveConfig {
pub title: Option<String>,
/// If specified, header will be added
- pub header: Option<Header>,
+ pub header: Option<HeaderMap>,
}
fn main() {
@@ -285,11 +285,17 @@ async fn run() -> Result<(), ContextualError> {
}
fn configure_header(conf: &MiniserveConfig) -> middleware::DefaultHeaders {
- let header = conf.clone().header;
-
- match header {
- Some(header) if header.name != httparse::EMPTY_HEADER.name => {
- middleware::DefaultHeaders::new().header(&header.name, header.value)
+ let headers = conf.clone().header;
+
+ match headers {
+ Some(headers) => {
+ let mut default_headers = middleware::DefaultHeaders::new();
+ for (header_name, header_value) in headers.into_iter() {
+ if let Some(header_name) = header_name {
+ default_headers = default_headers.header(&header_name, header_value);
+ }
+ }
+ default_headers
}
_ => middleware::DefaultHeaders::new(),
}