From 57fa2065c46d83bebd00684e0ef824d66ac0f1bf Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jackpot51@gmail.com> Date: Sun, 5 Mar 2017 09:54:11 -0700 Subject: [PATCH] Fix hyper headers for file_parse --- src/browser/main.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/browser/main.rs b/src/browser/main.rs index 5270553..69c8555 100644 --- a/src/browser/main.rs +++ b/src/browser/main.rs @@ -13,6 +13,7 @@ extern crate hyper_rustls; use std::{cmp, env, str}; use std::collections::BTreeMap; use std::default::Default; +use std::ffi::OsStr; use std::fs::File; use std::io::{stderr, Read, Write}; use std::string::String; @@ -23,7 +24,7 @@ use orbclient::{Color, EventOption, Renderer, Window, WindowFlag, K_BKSP, K_ESC, use orbfont::Font; use tendril::TendrilSink; use url::Url; -use hyper::header::Headers; +use hyper::header::{self, Headers}; use hyper::Client; use hyper::net::HttpsConnector; @@ -477,15 +478,24 @@ fn read_parse<'a, R: Read>(headers: Headers, r: &mut R, url: &Url, font: &'a Fon fn file_parse<'a>(url: &Url, font: &'a Font, font_bold: &'a Font, anchors: &mut BTreeMap<String, i32>, blocks: &mut Vec<Block<'a>>) { if let Ok(path) = url.to_file_path() { if let Ok(mut file) = File::open(&path) { - let headers = Headers::new(); + let mut headers = Headers::new(); + + let mime_type = match path.extension().unwrap_or(OsStr::new("")).to_str().unwrap_or("") { + "html" => "text/html", + "jpg" | "jpeg" => "image/jpeg", + "png" => "image/png", + "bmp" => "image/x-ms-bmp", + _ => "text/plain", + }; /* TODO { let extension = path.extension().unwrap_or(OsStr::new("")).to_str().unwrap_or(""); let mime_type = mime_guess::get_mime_type_str(extension).unwrap_or("application/octet-stream"); println!("{:?}", mime_type); - headers.push(format!("Content-Type: {}", mime_type)); } */ + headers.set(header::ContentType(mime_type.parse().unwrap())); + read_parse(headers, &mut file, url, &font, &font_bold, anchors, blocks); } else { println!("{} not found", path.display()); -- GitLab