minor resructure

This commit is contained in:
soruh 2023-03-19 19:30:25 +01:00
parent e4500cab78
commit 11d37c5b73

View File

@ -258,49 +258,51 @@ fn main() -> anyhow::Result<()> {
tokio::runtime::Builder::new_multi_thread() tokio::runtime::Builder::new_multi_thread()
.enable_all() .enable_all()
.build()? .build()?
.block_on(async move { .block_on(tokio_main(config))
setup_tracing(&config); }
let cache_path = PathBuf::from("cache.json"); async fn tokio_main(config: Arc<Config>) -> anyhow::Result<()> {
setup_tracing(&config);
let (change_sender, change_receiver) = tokio::sync::watch::channel(Instant::now()); let cache_path = PathBuf::from("cache.json");
let mut port_handler = PortHandler::load_or_default(&cache_path, change_sender); let (change_sender, change_receiver) = tokio::sync::watch::channel(Instant::now());
port_handler.update_allowed_ports(&config.allowed_ports);
let port_handler = Arc::new(Mutex::new(port_handler)); let mut port_handler = PortHandler::load_or_default(&cache_path, change_sender);
port_handler.update_allowed_ports(&config.allowed_ports);
spawn( let port_handler = Arc::new(Mutex::new(port_handler));
"cache daemon",
cache_daemon(port_handler.clone(), cache_path, change_receiver),
);
#[cfg(feature = "debug_server")] spawn(
if let Some(listen_addr) = config.debug_server_addr { "cache daemon",
warn!(%listen_addr, "debug server listening"); cache_daemon(port_handler.clone(), cache_path, change_receiver),
spawn( );
"debug server",
debug_server(listen_addr, port_handler.clone()),
);
}
let listener = TcpListener::bind(config.listen_addr).await?; #[cfg(feature = "debug_server")]
warn!( if let Some(listen_addr) = config.debug_server_addr {
listen_addr = %config.listen_addr, warn!(%listen_addr, "debug server listening");
"centralex server listening" spawn(
); "debug server",
debug_server(listen_addr, port_handler.clone()),
);
}
while let Ok((stream, addr)) = listener.accept().await { let listener = TcpListener::bind(config.listen_addr).await?;
info!(%addr, "new connection"); warn!(
listen_addr = %config.listen_addr,
"centralex server listening"
);
spawn( while let Ok((stream, addr)) = listener.accept().await {
&format!("connection to {addr}"), info!(%addr, "new connection");
connection_handler(stream, addr, config.clone(), port_handler.clone()),
);
}
Ok(()) spawn(
}) &format!("connection to {addr}"),
connection_handler(stream, addr, config.clone(), port_handler.clone()),
);
}
Ok(())
} }
#[derive(Debug, Default)] #[derive(Debug, Default)]