mirror of
https://github.com/YGGverse/agate.git
synced 2026-04-09 04:55:27 +00:00
Code cleanup
This commit is contained in:
parent
85ea736eb2
commit
73fa0e0f01
1 changed files with 16 additions and 18 deletions
34
src/main.rs
34
src/main.rs
|
|
@ -1,5 +1,6 @@
|
||||||
use {
|
use {
|
||||||
async_std::{
|
async_std::{
|
||||||
|
io::prelude::*,
|
||||||
net::{TcpListener, TcpStream},
|
net::{TcpListener, TcpStream},
|
||||||
stream::StreamExt,
|
stream::StreamExt,
|
||||||
task,
|
task,
|
||||||
|
|
@ -57,16 +58,15 @@ fn args() -> Option<Args> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn acceptor() -> Result<TlsAcceptor> {
|
fn acceptor() -> Result<TlsAcceptor> {
|
||||||
use rustls::internal::pemfile::{certs, pkcs8_private_keys};
|
use rustls::{ServerConfig, NoClientAuth, internal::pemfile::{certs, pkcs8_private_keys}};
|
||||||
|
|
||||||
let cert_file = File::open(&ARGS.cert_file)?;
|
let cert_file = File::open(&ARGS.cert_file)?;
|
||||||
let certs = certs(&mut BufReader::new(cert_file)).or(Err("bad cert"))?;
|
let certs = certs(&mut BufReader::new(cert_file)).or(Err("bad cert"))?;
|
||||||
|
|
||||||
let key_file = File::open(&ARGS.key_file)?;
|
let key_file = File::open(&ARGS.key_file)?;
|
||||||
let mut keys = pkcs8_private_keys(&mut BufReader::new(key_file))
|
let mut keys = pkcs8_private_keys(&mut BufReader::new(key_file)).or(Err("bad key"))?;
|
||||||
.or(Err("bad key"))?;
|
|
||||||
|
|
||||||
let mut config = rustls::ServerConfig::new(rustls::NoClientAuth::new());
|
let mut config = ServerConfig::new(NoClientAuth::new());
|
||||||
config.set_single_cert(certs, keys.remove(0))?;
|
config.set_single_cert(certs, keys.remove(0))?;
|
||||||
Ok(TlsAcceptor::from(Arc::new(config)))
|
Ok(TlsAcceptor::from(Arc::new(config)))
|
||||||
}
|
}
|
||||||
|
|
@ -74,28 +74,26 @@ fn acceptor() -> Result<TlsAcceptor> {
|
||||||
async fn connection(stream: TcpStream) -> Result {
|
async fn connection(stream: TcpStream) -> Result {
|
||||||
use async_std::io::prelude::*;
|
use async_std::io::prelude::*;
|
||||||
let mut stream = ACCEPTOR.accept(stream).await?;
|
let mut stream = ACCEPTOR.accept(stream).await?;
|
||||||
let url = match parse_request(&mut stream).await {
|
match parse_request(&mut stream).await {
|
||||||
Ok(url) => url,
|
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
stream.write_all(b"50 Invalid request.\r\n").await?;
|
stream.write_all(b"50 Invalid request.\r\n").await?;
|
||||||
return Err(e)
|
Err(e)
|
||||||
}
|
}
|
||||||
};
|
Ok(url) => match get(&url) {
|
||||||
match get(&url) {
|
Err(e) => {
|
||||||
Ok(response) => {
|
stream.write_all(b"40 Not found, sorry.\r\n").await?;
|
||||||
stream.write_all(b"20 text/gemini\r\n").await?;
|
Err(e)
|
||||||
stream.write_all(&response).await?;
|
}
|
||||||
}
|
Ok(response) => {
|
||||||
Err(e) => {
|
stream.write_all(b"20 text/gemini\r\n").await?;
|
||||||
stream.write_all(b"40 Not found, sorry.\r\n").await?;
|
stream.write_all(&response).await?;
|
||||||
return Err(e)
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn parse_request(stream: &mut TlsStream<TcpStream>) -> Result<Url> {
|
async fn parse_request(stream: &mut TlsStream<TcpStream>) -> Result<Url> {
|
||||||
use async_std::io::prelude::*;
|
|
||||||
let mut stream = async_std::io::BufReader::new(stream);
|
let mut stream = async_std::io::BufReader::new(stream);
|
||||||
let mut request = String::new();
|
let mut request = String::new();
|
||||||
stream.read_line(&mut request).await?;
|
stream.read_line(&mut request).await?;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue