aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven-Hendrik Haase <svenstaro@gmail.com>2021-09-04 18:51:19 +0000
committerGitHub <noreply@github.com>2021-09-04 18:51:19 +0000
commit095b394696254338848dfb67f348d9da645e220b (patch)
tree14efabd1ce76168ad236b5115cfa8f156202f6d2
parentBump deps (diff)
parentUpdate Cargo.lock (diff)
downloadminiserve-095b394696254338848dfb67f348d9da645e220b.tar.gz
miniserve-095b394696254338848dfb67f348d9da645e220b.zip
Merge pull request #537 from aliemjay/src-refactor-misc
[Refactor] Miscellaneous small refactors
-rw-r--r--Cargo.lock1
-rw-r--r--Cargo.toml1
-rw-r--r--src/args.rs6
-rw-r--r--src/listing.rs18
-rw-r--r--src/main.rs15
5 files changed, 9 insertions, 32 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 56c0b7f..d0dfc80 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1404,7 +1404,6 @@ dependencies = [
"assert_cmd",
"assert_fs",
"atty",
- "bytes",
"bytesize",
"chrono",
"chrono-humanize",
diff --git a/Cargo.toml b/Cargo.toml
index ada8e05..db51a4d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -50,7 +50,6 @@ qrcodegen = "1"
mime = "0.3"
httparse = "1"
http = "0.2"
-bytes = "1"
atty = "0.2"
rustls = { version = "0.19", optional = true }
socket2 = "0.4"
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<auth::RequiredAuth, ContextualError> {
/// Custom header parser (allow multiple headers input)
pub fn parse_header(src: &str) -> Result<HeaderMap, httparse::Error> {
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/listing.rs b/src/listing.rs
index b2730de..ef4c8c8 100644
--- a/src/listing.rs
+++ b/src/listing.rs
@@ -27,7 +27,7 @@ mod percent_encode_sets {
}
/// Query parameters
-#[derive(Deserialize)]
+#[derive(Deserialize, Default)]
pub struct QueryParameters {
pub path: Option<PathBuf>,
pub sort: Option<SortingMethod>,
@@ -383,23 +383,11 @@ pub fn directory_listing(
pub fn extract_query_parameters(req: &HttpRequest) -> QueryParameters {
match Query::<QueryParameters>::from_query(req.query_string()) {
- Ok(query) => QueryParameters {
- sort: query.sort,
- order: query.order,
- download: query.download,
- qrcode: query.qrcode.to_owned(),
- path: query.path.clone(),
- },
+ Ok(Query(query_params)) => query_params,
Err(e) => {
let err = ContextualError::ParseError("query parameters".to_string(), e.to_string());
errors::log_error_chain(err.to_string());
- QueryParameters {
- sort: None,
- order: None,
- download: None,
- qrcode: None,
- path: None,
- }
+ QueryParameters::default()
}
}
}
diff --git a/src/main.rs b/src/main.rs
index 5259bee..133f320 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -297,17 +297,10 @@ fn create_tcp_listener(addr: SocketAddr) -> io::Result<TcpListener> {
}
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