39 lines
879 B
Rust
39 lines
879 B
Rust
use tokio::sync::watch;
|
|
|
|
use ptth_quic::prelude::*;
|
|
use ptth_quic::executable_relay_server as relay;
|
|
|
|
#[tokio::main]
|
|
async fn main () -> anyhow::Result <()> {
|
|
use structopt::StructOpt;
|
|
|
|
tracing_subscriber::fmt::init ();
|
|
|
|
let opt = relay::Opt::from_args ();
|
|
|
|
let (running_tx, mut running_rx) = watch::channel (true);
|
|
|
|
ctrlc::set_handler (move || {
|
|
running_tx.send (false).expect ("Couldn't forward Ctrl+C signal");
|
|
})?;
|
|
trace! ("Set Ctrl+C handler");
|
|
|
|
let app = relay::App::new (opt).await?;
|
|
println! ("Base64 cert: {}", base64::encode (app.server_cert ()));
|
|
println! ("Listening on {}", app.listen_addr ());
|
|
|
|
tokio::fs::create_dir_all ("ptth_quic_output").await?;
|
|
tokio::fs::write ("ptth_quic_output/quic_server.crt", app.server_cert ()).await?;
|
|
|
|
tokio::select! {
|
|
val = app.run () => {
|
|
|
|
},
|
|
val = running_rx.changed () => {
|
|
|
|
},
|
|
}
|
|
|
|
Ok (())
|
|
}
|