mirror of
https://github.com/MercuryWorkshop/epoxy-tls.git
synced 2025-05-12 14:00:01 -04:00
remove tls from epoxy-server
This commit is contained in:
parent
1bf1a809bd
commit
b36773e5d1
4 changed files with 10 additions and 32 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -402,7 +402,6 @@ dependencies = [
|
|||
"hyper",
|
||||
"hyper-util",
|
||||
"tokio",
|
||||
"tokio-native-tls",
|
||||
"tokio-util",
|
||||
"wisp-mux",
|
||||
]
|
||||
|
|
|
@ -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`);
|
||||
|
||||
|
|
|
@ -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"] }
|
||||
|
|
|
@ -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()));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue