|
|
@ -29,7 +29,9 @@ async fn main () -> anyhow::Result <()> {
|
|
|
|
let listen_addr = opt.listen_addr.unwrap_or_else (|| String::from ("0.0.0.0:30380")).parse ()?;
|
|
|
|
let listen_addr = opt.listen_addr.unwrap_or_else (|| String::from ("0.0.0.0:30380")).parse ()?;
|
|
|
|
let (mut incoming, server_cert) = make_server_endpoint (listen_addr)?;
|
|
|
|
let (mut incoming, server_cert) = make_server_endpoint (listen_addr)?;
|
|
|
|
println! ("Base64 cert: {}", base64::encode (&server_cert));
|
|
|
|
println! ("Base64 cert: {}", base64::encode (&server_cert));
|
|
|
|
tokio::fs::write ("quic_server.crt", &server_cert).await?;
|
|
|
|
|
|
|
|
|
|
|
|
tokio::fs::create_dir_all ("ptth_quic_output").await?;
|
|
|
|
|
|
|
|
tokio::fs::write ("ptth_quic_output/quic_server.crt", &server_cert).await?;
|
|
|
|
|
|
|
|
|
|
|
|
let relay_state = Arc::new (RelayState::default ());
|
|
|
|
let relay_state = Arc::new (RelayState::default ());
|
|
|
|
|
|
|
|
|
|
|
@ -199,8 +201,8 @@ struct RequestP2ToP4 {
|
|
|
|
client_id: String,
|
|
|
|
client_id: String,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
struct PtthNewConnection <ClientSend: AsyncWrite + Unpin> {
|
|
|
|
struct PtthNewConnection {
|
|
|
|
client_send: ClientSend,
|
|
|
|
client_send: quinn::SendStream,
|
|
|
|
client_recv: quinn::RecvStream,
|
|
|
|
client_recv: quinn::RecvStream,
|
|
|
|
server_send: quinn::SendStream,
|
|
|
|
server_send: quinn::SendStream,
|
|
|
|
server_recv: quinn::RecvStream,
|
|
|
|
server_recv: quinn::RecvStream,
|
|
|
@ -211,7 +213,7 @@ struct PtthConnection {
|
|
|
|
downlink_task: JoinHandle <anyhow::Result <()>>,
|
|
|
|
downlink_task: JoinHandle <anyhow::Result <()>>,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
impl <ClientSend: AsyncWrite + Unpin> PtthNewConnection <ClientSend> {
|
|
|
|
impl PtthNewConnection {
|
|
|
|
fn build (self) -> PtthConnection {
|
|
|
|
fn build (self) -> PtthConnection {
|
|
|
|
let Self {
|
|
|
|
let Self {
|
|
|
|
mut client_send,
|
|
|
|
mut client_send,
|
|
|
|