From 50cd15867b044302195c1c39b106abd6b1383687 Mon Sep 17 00:00:00 2001 From: ddidderr Date: Sat, 8 Nov 2025 20:47:02 +0100 Subject: [PATCH] mdns --- Cargo.lock | 1 + crates/lanspread-mdns/Cargo.toml | 3 ++- crates/lanspread-mdns/src/lib.rs | 26 ++++++++----------- .../src-tauri/src/lib.rs | 2 +- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3a1700a..25d42cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2324,6 +2324,7 @@ name = "lanspread-mdns" version = "0.1.0" dependencies = [ "eyre", + "log", "mdns-sd", "tracing", ] diff --git a/crates/lanspread-mdns/Cargo.toml b/crates/lanspread-mdns/Cargo.toml index 3b010c7..4ad6ae8 100644 --- a/crates/lanspread-mdns/Cargo.toml +++ b/crates/lanspread-mdns/Cargo.toml @@ -12,6 +12,7 @@ todo = "warn" unwrap_used = "warn" [dependencies] -mdns-sd = { workspace = true } eyre = { workspace = true } +log = { workspace = true } +mdns-sd = { workspace = true } tracing = { workspace = true } diff --git a/crates/lanspread-mdns/src/lib.rs b/crates/lanspread-mdns/src/lib.rs index 7559061..3f08500 100644 --- a/crates/lanspread-mdns/src/lib.rs +++ b/crates/lanspread-mdns/src/lib.rs @@ -47,10 +47,7 @@ impl Drop for MdnsAdvertiser { } } -pub fn discover_service( - service_type: &str, - instance_name: Option<&str>, -) -> eyre::Result { +pub fn discover_service(service_type: &str) -> eyre::Result { let mdns = ServiceDaemon::new().expect("Failed to create mDNS daemon."); let receiver = mdns.browse(service_type)?; @@ -58,28 +55,27 @@ pub fn discover_service( while let Ok(event) = receiver.recv() { match event { ServiceEvent::ServiceResolved(info) => { - tracing::trace!(?info, "mdns ServiceResolved event"); + log::trace!("mdns ServiceResolved event: {info:?}"); - if let Some(instance_name) = instance_name - && info.get_fullname() != format!("{instance_name}.{service_type}") - { - tracing::warn!( - "Found service with wrong instance name: {} (expected: {})", - info.get_fullname(), - instance_name, + // Check if this service matches our expected service type + if info.ty_domain != service_type { + log::trace!( + "Got mDNS with uninteresting service type: {} (expected: {})", + info.ty_domain, + service_type, ); continue; } if let Some(address) = info.get_addresses().iter().next() { - tracing::info!("Found server at {}:{}", address, info.get_port()); + log::info!("Found server at {}:{}", address, info.get_port()); return Ok((address.to_ip_addr(), info.get_port()).into()); } - tracing::error!(?info, "No address found in mDNS response."); + log::error!("No address found in mDNS response: {info:?}"); } other_event => { - tracing::trace!(?other_event, "mdns unrelated event"); + log::trace!("mdns unrelated event: {other_event:?}"); } } } diff --git a/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs b/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs index 6f4cbce..d6b2066 100644 --- a/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs +++ b/crates/lanspread-tauri-deno-ts/src-tauri/src/lib.rs @@ -370,7 +370,7 @@ async fn find_server(app: AppHandle) { log::info!("Looking for server..."); loop { - match discover_service(LANSPREAD_SERVICE_TYPE, None) { + match discover_service(LANSPREAD_SERVICE_TYPE) { Ok(server_addr) => { log::info!("Found server at {server_addr}"); let state: tauri::State = app.state();