remove tls from epoxy-server

This commit is contained in:
Toshit Chawda 2024-03-02 16:51:16 -08:00
parent 1bf1a809bd
commit b36773e5d1
No known key found for this signature in database
GPG key ID: 91480ED99E2B3D9D
4 changed files with 10 additions and 32 deletions

1
Cargo.lock generated
View file

@ -402,7 +402,6 @@ dependencies = [
"hyper",
"hyper-util",
"tokio",
"tokio-native-tls",
"tokio-util",
"wisp-mux",
]

View file

@ -21,7 +21,7 @@ onmessage = async (msg) => {
const tconn0 = performance.now();
// args: websocket url, user agent, redirect limit
let epoxy_client = await new EpoxyClient("wss://localhost:4000", navigator.userAgent, 10);
let epoxy_client = await new EpoxyClient("ws://localhost:4000", navigator.userAgent, 10);
const tconn1 = performance.now();
log(`conn establish took ${tconn1 - tconn0} ms or ${(tconn1 - tconn0) / 1000} s`);

View file

@ -14,6 +14,5 @@ http-body-util = "0.1.0"
hyper = { version = "1.1.0", features = ["server", "http1"] }
hyper-util = { version = "0.1.2", features = ["tokio"] }
tokio = { version = "1.5.1", features = ["rt-multi-thread", "macros"] }
tokio-native-tls = "0.3.1"
tokio-util = { version = "0.7.10", features = ["codec"] }
wisp-mux = { path = "../wisp", features = ["fastwebsockets", "tokio_io"] }

View file

@ -1,5 +1,5 @@
#![feature(let_chains)]
use std::io::{Error, Read};
use std::io::Error;
use bytes::Bytes;
use clap::Parser;
@ -13,7 +13,6 @@ use hyper::{
};
use hyper_util::rt::TokioIo;
use tokio::net::{TcpListener, TcpStream, UdpSocket};
use tokio_native_tls::{native_tls, TlsAcceptor};
use tokio_util::codec::{BytesCodec, Framed};
use wisp_mux::{
@ -27,42 +26,23 @@ type HttpBody = http_body_util::Full<hyper::body::Bytes>;
struct Cli {
#[arg(long, default_value = "")]
prefix: String,
#[arg(
long = "port",
short = 'l',
value_name = "PORT",
default_value = "4000"
)]
listen_port: String,
#[arg(long, short, value_parser)]
pubkey: clio::Input,
#[arg(long, short = 'P', value_parser)]
privkey: clio::Input,
#[arg(long, short, default_value = "4000")]
port: String,
#[arg(long = "host", short, value_name = "HOST", default_value = "0.0.0.0")]
bind_host: String,
}
#[tokio::main(flavor = "multi_thread")]
async fn main() -> Result<(), Error> {
let mut opt = Cli::parse();
let mut pem = Vec::new();
opt.pubkey.read_to_end(&mut pem)?;
let mut key = Vec::new();
opt.privkey.read_to_end(&mut key)?;
let identity = native_tls::Identity::from_pkcs8(&pem, &key).expect("failed to make identity");
let opt = Cli::parse();
let addr = format!("{}:{}", opt.bind_host, opt.port);
let socket = TcpListener::bind(format!("0.0.0.0:{}", opt.listen_port))
.await
.expect("failed to bind");
let acceptor = TlsAcceptor::from(
native_tls::TlsAcceptor::new(identity).expect("failed to make tls acceptor"),
);
let acceptor = std::sync::Arc::new(acceptor);
let socket = TcpListener::bind(&addr).await.expect("failed to bind");
println!("listening on 0.0.0.0:4000");
println!("listening on `{}`", addr);
while let Ok((stream, addr)) = socket.accept().await {
let acceptor_cloned = acceptor.clone();
let prefix_cloned = opt.prefix.clone();
tokio::spawn(async move {
let stream = acceptor_cloned.accept(stream).await.expect("not tls");
let io = TokioIo::new(stream);
let service =
service_fn(move |res| accept_http(res, addr.to_string(), prefix_cloned.clone()));