diff options
-rw-r--r-- | Cargo.lock | 12 | ||||
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | src/sersve.rs | 20 |
3 files changed, 14 insertions, 20 deletions
@@ -2,12 +2,19 @@ name = "sersve" version = "0.0.1" dependencies = [ + "conduit-mime-types 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "iron 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "persistent 0.0.1 (git+https://github.com/iron/persistent)", ] [[package]] +name = "conduit-mime-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "cookie" version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -63,6 +70,11 @@ dependencies = [ ] [[package]] +name = "lazy_static" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "libressl-pnacl-sys" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -11,6 +11,8 @@ path = "src/sersve.rs" [dependencies] iron = "*" glob = "*" +conduit-mime-types = "*" +lazy_static = "~0.1.1" [dependencies.persistent] git = "https://github.com/iron/persistent" diff --git a/src/sersve.rs b/src/sersve.rs index 61c70dc..5d6c8ff 100644 --- a/src/sersve.rs +++ b/src/sersve.rs @@ -33,7 +33,6 @@ use iron::prelude::*; use iron::response::modifiers::*; use iron::status; use iron::mime::*; -use iron::mime::SubLevel::Ext as SubExt; use iron::middleware::ChainBuilder; use iron::typemap::Assoc; @@ -133,24 +132,6 @@ fn html<B: Bodyable>(content: B) -> IronResult<Response> { plain(content).map(|r| r.set(ContentType(Mime(Text, Html, Vec::new())))) } -fn binary<B: Bodyable>(content: B) -> IronResult<Response> { - plain(content).map( - |r| r.set(ContentType(Mime(Application, SubExt("octet-stream".into_string()), Vec::new())))) -} - -fn guess_text(data: &[u8]) -> bool { - let mut total = 0u; - let mut text = 0u; - for (c, _) in data.iter().zip(range(0u, 1000)) { - let c = *c as char; - if c.is_alphanumeric() || c.is_whitespace() { - text += 1; - } - total += 1; - } - text as f64 / total as f64 > 0.75 -} - fn serve(req: &mut Request) -> IronResult<Response> { let (root, filter_str, max_size) = { let o = req.get::<Read<OptCarrier, Mutex<Options>>>().unwrap(); @@ -187,7 +168,6 @@ fn serve(req: &mut Request) -> IronResult<Response> { } else { plain(content[]) } - //if guess_text(content[]) { plain(content[]) } else { binary(content[]) } } else { let mut content = match fs::readdir(&path) { Ok(s) => s, |