diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/src/main.rs b/src/main.rs index d1459e1..220c4c9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,6 +20,7 @@ use tokio::{ tcp::{OwnedReadHalf, OwnedWriteHalf}, TcpListener, TcpStream, }, + sync::RwLock, }; #[tokio::main] @@ -29,34 +30,21 @@ async fn main() { .parse_env("LOG") .init(); - let config = - Arc::new(serde_yaml::from_str::<Config>(&read_to_string("proxy.yaml").unwrap()).unwrap()); + let config = RwLock::new(Arc::new( + serde_yaml::from_str::<Config>(&read_to_string("proxy.yaml").unwrap()).unwrap(), + )); - let listener = TcpListener::bind(config.bind).await.unwrap(); + let listener = TcpListener::bind(config.read().await.bind).await.unwrap(); info!("listening"); loop { match listener.accept().await { Ok((sock, addr)) => { info!("connected: {addr}"); - let config = config.clone(); + let config = config.read().await.clone(); tokio::spawn(async move { match handle_client(config, sock).await { Ok(()) => info!("disconnected: {addr}"), - Err(err) => { - // write_packet::<ClientboundLoginPacket, _>( - // &ClientboundLoginPacket::LoginDisconnect( - // ClientboundLoginDisconnectPacket { - // reason: azalea_chat::component::Component::Text( - // legacy_color_code_to_text_component(&format!("{err}")), - // ), - // }, - // ), - // &mut sock, - // None, - // &mut None, - // ); - warn!("error: ({addr}) {err}") - } + Err(err) => warn!("error: ({addr}) {err}"), } }); } |