[omg] GUI, mDNS, list games on client start
This commit is contained in:
@ -14,6 +14,7 @@ unwrap_used = "warn"
|
||||
[dependencies]
|
||||
# local
|
||||
lanspread-db = { path = "../lanspread-db" }
|
||||
lanspread-mdns = { path = "../lanspread-mdns" }
|
||||
lanspread-proto = { path = "../lanspread-proto" }
|
||||
lanspread-utils = { path = "../lanspread-utils" }
|
||||
|
||||
|
@ -6,6 +6,12 @@ use std::{
|
||||
|
||||
use clap::Parser;
|
||||
use lanspread_db::db::GameDB;
|
||||
use lanspread_mdns::{
|
||||
DaemonEvent,
|
||||
MdnsAdvertiser,
|
||||
LANSPREAD_INSTANCE_NAME,
|
||||
LANSPREAD_SERVICE_TYPE,
|
||||
};
|
||||
use lanspread_proto::{Message as _, Request, Response};
|
||||
use lanspread_utils::maybe_addr;
|
||||
use s2n_quic::Server as QuicServer;
|
||||
@ -41,10 +47,6 @@ impl Server {
|
||||
}
|
||||
|
||||
async fn run(&mut self, addr: SocketAddr) -> eyre::Result<()> {
|
||||
tracing_subscriber::fmt()
|
||||
.with_env_filter(EnvFilter::from_default_env())
|
||||
.init();
|
||||
|
||||
let mut server = QuicServer::builder()
|
||||
.with_tls((CERT_PEM, KEY_PEM))?
|
||||
.with_io(addr)?
|
||||
@ -172,10 +174,32 @@ struct Cli {
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> eyre::Result<()> {
|
||||
tracing_subscriber::fmt()
|
||||
.with_env_filter(EnvFilter::from_default_env())
|
||||
.init();
|
||||
|
||||
let cli = Cli::parse();
|
||||
|
||||
generate_test_db(GAME_DB_PATH);
|
||||
|
||||
let mdns = MdnsAdvertiser::new(
|
||||
LANSPREAD_SERVICE_TYPE,
|
||||
LANSPREAD_INSTANCE_NAME,
|
||||
(cli.ip, cli.port).into(),
|
||||
)?;
|
||||
|
||||
tokio::spawn(async move {
|
||||
while let Ok(event) = mdns.monitor.recv() {
|
||||
tracing::info!("mDNS: {:?}", &event);
|
||||
if let DaemonEvent::Error(e) = event {
|
||||
tracing::info!("Failed: {e}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
tracing::info!("Server listening on {}:{}", cli.ip, cli.port);
|
||||
|
||||
let mut server = Server::new(GAME_DB_PATH);
|
||||
server.run(SocketAddr::from((cli.ip, cli.port))).await
|
||||
}
|
||||
|
Reference in New Issue
Block a user