summaryrefslogtreecommitdiff
path: root/src/server/handler.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/handler.rs')
-rw-r--r--src/server/handler.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/handler.rs b/src/server/handler.rs
index d27d292..ec9b523 100644
--- a/src/server/handler.rs
+++ b/src/server/handler.rs
@@ -1,5 +1,6 @@
use crate::server::response;
use crate::server::ServerConfig;
+use crate::mime;
use openssl::ssl::SslStream;
use std::fs::File;
use std::io::{copy, BufReader, BufWriter};
@@ -77,7 +78,11 @@ fn handle_response(config: &ServerConfig, url: Url, mut stream: &mut SslStream<T
}
};
- let header = response::Header::new(response::Status::Success, "text/gemini");
+ let mime_type = match path.extension() {
+ Some(ext) => mime::get_mime_type(ext),
+ None => mime::default_mime_type(),
+ };
+ let header = response::Header::new(response::Status::Success, mime_type);
send_header(&mut stream, &header);
let mut buf_file = BufReader::new(file);