index : static-web-server.git

ascending towards madness

use hyper::{Body, Response};

use crate::settings::HeadersOpt;

/** Append custom HTTP headers to current response. */
pub fn append_headers(
    uri: &str,
    multiple_headers: &Option<Vec<HeadersOpt>>,
    resp: &mut Response<Body>,
) {
    if let Some(multiple_headers) = multiple_headers {
        for headers_entry in multiple_headers.iter() {
            // Match header glob pattern against request uri
            if headers_entry.source.is_match(uri) {
                // Add/update headers if uri matches
                for (name, value) in &headers_entry.headers {
                    resp.headers_mut().insert(name, value.to_owned());
                }
            }
        }
    }
}