From c064fb12a457dd64a3a600f36dbcbdb2f4f61c18 Mon Sep 17 00:00:00 2001 From: Shane Snover Date: Sun, 17 Sep 2023 11:23:44 -0600 Subject: [PATCH] Update with service name --- rs-matter/Cargo.toml | 2 +- rs-matter/src/mdns/zeroconf.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/rs-matter/Cargo.toml b/rs-matter/Cargo.toml index 1619548..cdccfd4 100644 --- a/rs-matter/Cargo.toml +++ b/rs-matter/Cargo.toml @@ -78,7 +78,7 @@ x509-cert = { version = "0.2.0", default-features = false, features = ["pem"], o astro-dnssd = { version = "0.3" } [target.'cfg(target_os = "linux")'.dependencies] -zeroconf = { version = "0.11.1", optional = true, path = "../../zeroconf-rs/zeroconf" } +zeroconf = { version = "0.11.1", optional = true, git = "https://github.com/ssnover/zeroconf-rs" } [target.'cfg(not(target_os = "espidf"))'.dependencies] mbedtls = { version = "0.9", optional = true } diff --git a/rs-matter/src/mdns/zeroconf.rs b/rs-matter/src/mdns/zeroconf.rs index 4676731..2fd5d1f 100644 --- a/rs-matter/src/mdns/zeroconf.rs +++ b/rs-matter/src/mdns/zeroconf.rs @@ -54,7 +54,7 @@ impl<'a> MdnsService<'a> { let _ = self.remove(name); mode.service(self.dev_det, self.matter_port, name, |service| { - let name = service.service.strip_prefix('_').unwrap_or(service.service); + let service_name = service.service.strip_prefix('_').unwrap_or(service.service); let protocol = service .protocol .strip_prefix('_') @@ -67,9 +67,9 @@ impl<'a> MdnsService<'a> { .map(|subtype| subtype.strip_prefix('_').unwrap_or(*subtype)) .collect(); - ServiceType::with_sub_types(name, protocol, subtypes) + ServiceType::with_sub_types(service_name, protocol, subtypes) } else { - ServiceType::new(name, protocol) + ServiceType::new(service_name, protocol) } .map_err(|err| { log::error!( @@ -87,6 +87,8 @@ impl<'a> MdnsService<'a> { txt_kvs.push((k.to_string(), v.to_string())); } + let name_copy = name.to_owned(); + std::thread::spawn(move || { let mut mdns_service = zeroconf::MdnsService::new(service_type, service_port); @@ -100,6 +102,7 @@ impl<'a> MdnsService<'a> { ); } } + mdns_service.set_name(&name_copy); mdns_service.set_txt_record(txt_record); mdns_service.set_registered_callback(Box::new(|_, _| {}));