Adding meta

This commit is contained in:
int 80h
2020-04-27 18:25:09 -04:00
parent 9f9c35b248
commit c37a12ae15
3 changed files with 14 additions and 5 deletions

View File

@@ -16,3 +16,5 @@ serde = "*"
serde_derive = "*" serde_derive = "*"
url = "*" url = "*"
chrono = "0.4" chrono = "0.4"
mime_guess = "2.0.3"
mime = "0.3.16"

View File

@@ -18,9 +18,9 @@ pub async fn cgi(mut con: util::Connection, path: PathBuf, url: Url) -> Result<(
envs.insert("SERVER_PROTOCOL", "GEMINI"); envs.insert("SERVER_PROTOCOL", "GEMINI");
let addr = con.peer_addr.ip().to_string(); let addr = con.peer_addr.ip().to_string();
envs.insert("REMOTE_ADDR", &addr); envs.insert("REMOTE_ADDR", &addr);
envs.insert("REMOTE_HOST", &addr);
let port = con.peer_addr.port().to_string(); let port = con.peer_addr.port().to_string();
envs.insert("REMOTE_PORT", &port); envs.insert("REMOTE_PORT", &port);
// envs.insert("SERVER_PORT", con.cfg.port.clone().to_string());
if let Some(q) = url.query() { if let Some(q) = url.query() {
envs.insert("QUERY_STRING", q); envs.insert("QUERY_STRING", q);
@@ -36,9 +36,6 @@ pub async fn cgi(mut con: util::Connection, path: PathBuf, url: Url) -> Result<(
return Ok(()); return Ok(());
} }
let cmd = String::from_utf8(cmd.stdout).unwrap(); let cmd = String::from_utf8(cmd.stdout).unwrap();
// if cmd.starts_with("20") {
con.send_raw(cmd).await?; con.send_raw(cmd).await?;
//util::send_body(stream, status::Status::Success, "text/gemini", Some(cmd)).await?;
// }
return Ok(()); return Ok(());
} }

View File

@@ -26,6 +26,8 @@ use tokio_rustls::server::TlsStream;
use tokio_rustls::TlsAcceptor; use tokio_rustls::TlsAcceptor;
use url::Url; use url::Url;
use chrono::{DateTime, Utc}; use chrono::{DateTime, Utc};
use mime_guess;
use mime;
mod cgi; mod cgi;
mod config; mod config;
@@ -114,10 +116,18 @@ async fn handle_connection(mut con: util::Connection) -> Result<(), io::Error> {
return Ok(()); return Ok(());
} }
let mut mime = "text/gemini";
let m: mime::Mime;
if path.extension().unwrap().to_str() != Some("gemini") {
m = mime_guess::from_path(&path).first().unwrap();
mime = m.essence_str();
}
let content = get_content(path, url)?; let content = get_content(path, url)?;
con.send_body( con.send_body(
status::Status::Success, status::Status::Success,
"text/gemini", mime,
Some(content), Some(content),
) )
.await?; .await?;