Adding meta
This commit is contained in:
@@ -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"
|
||||||
|
|||||||
@@ -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(());
|
||||||
}
|
}
|
||||||
|
|||||||
12
src/main.rs
12
src/main.rs
@@ -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?;
|
||||||
|
|||||||
Reference in New Issue
Block a user