From a906472adddbf3dee0e78969af0d713c3f0f21e4 Mon Sep 17 00:00:00 2001 From: _ <> Date: Sun, 10 Oct 2021 16:33:14 +0000 Subject: [PATCH] :recycle: refactor: clean up client to match the end server style --- .../quic_demo/src/bin/quic_demo_client.rs | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/prototypes/quic_demo/src/bin/quic_demo_client.rs b/prototypes/quic_demo/src/bin/quic_demo_client.rs index 66fb152..2f45cb8 100644 --- a/prototypes/quic_demo/src/bin/quic_demo_client.rs +++ b/prototypes/quic_demo/src/bin/quic_demo_client.rs @@ -24,6 +24,8 @@ async fn main () -> anyhow::Result <()> { let opt = Opt::from_args (); + //let conf = opt.into_config (); + let server_cert = tokio::fs::read ("ptth_quic_output/quic_server.crt").await?; let relay_addr = opt.relay_addr.unwrap_or_else (|| String::from ("127.0.0.1:30380")).parse ()?; let endpoint = make_client_endpoint ("0.0.0.0:0".parse ()?, &[&server_cert])?; @@ -89,3 +91,37 @@ async fn main () -> anyhow::Result <()> { Ok (()) } + +/// A filled-out config for constructing a P2 client +#[derive (Clone)] +pub struct Config { + client_tcp_port: u16, + server_tcp_port: u16, + client_id: String, + server_id: String, + relay_addr: SocketAddr, + relay_cert: Vec , +} + +impl Opt { + pub async fn into_config (self) -> anyhow::Result { + let client_tcp_port = self.client_tcp_port.unwrap_or (30381); + let server_tcp_port = self.server_tcp_port.unwrap_or (30382); + let client_id = self.client_id.unwrap_or_else (|| "bogus_client".to_string ()); + let server_id = self.server_id.unwrap_or_else (|| "bogus_server".to_string ()); + let relay_addr = self.relay_addr.unwrap_or_else (|| String::from ("127.0.0.1:30380")).parse ()?; + + // Begin I/O + + let relay_cert = tokio::fs::read ("ptth_quic_output/quic_server.crt").await?; + + Ok (Config { + client_tcp_port, + server_tcp_port, + client_id, + server_id, + relay_addr, + relay_cert, + }) + } +}