From b36773e5d19f9f8eca80dcbf6faaa5175f822c17 Mon Sep 17 00:00:00 2001 From: Toshit Chawda Date: Sat, 2 Mar 2024 16:51:16 -0800 Subject: [PATCH] remove tls from epoxy-server --- Cargo.lock | 1 - client/demo.js | 2 +- server/Cargo.toml | 1 - server/src/main.rs | 38 +++++++++----------------------------- 4 files changed, 10 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 02b3cd1..a0ac789 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -402,7 +402,6 @@ dependencies = [ "hyper", "hyper-util", "tokio", - "tokio-native-tls", "tokio-util", "wisp-mux", ] diff --git a/client/demo.js b/client/demo.js index 694591c..5dc8fbf 100644 --- a/client/demo.js +++ b/client/demo.js @@ -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`); diff --git a/server/Cargo.toml b/server/Cargo.toml index 9e3231d..6679a10 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -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"] } diff --git a/server/src/main.rs b/server/src/main.rs index f3fd87b..3411905 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -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; 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()));