From 698e8deb0247a5deb428bc4ea4cc18060b17c42d Mon Sep 17 00:00:00 2001 From: Erik Mackdanz Date: Fri, 27 Oct 2023 08:26:30 -0500 Subject: [PATCH] Remove mime override feature since it can be done in HAProxy --- Cargo.lock | 45 --------------------------------------------- Cargo.toml | 1 - src/main.rs | 33 ++------------------------------- 3 files changed, 2 insertions(+), 77 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7ac8b78..4fad405 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "aho-corasick" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" -dependencies = [ - "memchr", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -58,7 +49,6 @@ dependencies = [ "log", "mime", "new_mime_guess", - "regex", "signal", "simplelog", ] @@ -81,12 +71,6 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - [[package]] name = "mime" version = "0.3.17" @@ -149,35 +133,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "regex" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - [[package]] name = "serde" version = "1.0.190" diff --git a/Cargo.toml b/Cargo.toml index 58eb72f..7fa08c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,5 @@ fastcgi = "1.0.0" log = "0.4.20" mime = "0.3.17" new_mime_guess = "4.0.1" -regex = "1.10.2" signal = "0.7.0" simplelog = "0.12.1" diff --git a/src/main.rs b/src/main.rs index 4bb6e7d..10fc5e7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,9 +2,7 @@ use fastcgi::{run_raw,Request}; use log::{debug,info,error}; use mime; use new_mime_guess::from_path; -use regex::Regex; use simplelog::{SimpleLogger,LevelFilter}; -use std::collections::BTreeMap; use std::error::Error; use std::env; use std::fs::{File,metadata,remove_file}; @@ -32,16 +30,11 @@ macro_rules! write_err_resp { } } -fn handle_req(conf: &Config, mut req: Request) { +fn handle_req(_conf: &Config, mut req: Request) { // for (k,v) in req.params() { // info!("key {} has value {}",k,v); // } - let Some(docroot) = req.param("DOCUMENT_ROOT") else { - write_err_resp!(req,"400","Bad Request","No document root was set"); - return; - }; - // require a method let Some(method) = req.param("REQUEST_METHOD") else { write_err_resp!(req,"405","Method not allowed","No method"); @@ -65,16 +58,7 @@ fn handle_req(conf: &Config, mut req: Request) { // determine content-type let guess = from_path(filename.clone()); let guessed_mime = guess.first().unwrap_or(mime::TEXT_PLAIN); - let mut mimestr = guessed_mime.essence_str(); - - // check for a mime type override in config - let short_filename = &filename[docroot.len()..]; - for idx in conf.mime_matches.keys() { - let (conf_mime_match,conf_mime_value) = &conf.mime_matches[idx]; - if conf_mime_match.is_match(short_filename) { - mimestr = conf_mime_value; - } - } + let mimestr = guessed_mime.essence_str(); // read std::fs::metadata including size let Ok(metadata) = metadata(filename.clone()) else { @@ -126,34 +110,21 @@ fn handle_req(conf: &Config, mut req: Request) { struct Config { socket_path: String, - mime_matches: BTreeMap, - // cors_origin_matches: BTreeMap, } impl Config { fn init() -> Result> { let mut socket_path = "/tmp/fcgisocket".to_string(); - let mut mime_matches = BTreeMap::new(); - // let mut cors_origin_matches = BTreeMap::new(); for (k,v) in env::vars() { if k == "FCGI_SRV_SOCKET_PATH" { info!("config: found socket_path {}",v); socket_path = v; - } else if k.starts_with("FCGI_SRV_MIME_MATCH_") { - let index = u8::from_str_radix(&k[20..],10)?; - info!("config: found mime match index {}",index); - let re = Regex::new(&v)?; - if let Ok(mtype) = env::var(format!("FCGI_SRV_MIME_TYPE_{}",index)) { - mime_matches.insert(index,(re,mtype)); - }; } } let conf = Config { socket_path: socket_path, - mime_matches: mime_matches, - // cors_origin_matches: cors_origin_matches, }; Ok(conf) -- 2.52.0