aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs26
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}"),
}
});
}