From 7e9ccd2286ee9ea962081e34f6630672bdecec06 Mon Sep 17 00:00:00 2001 From: MilicaStoj Date: Tue, 23 Apr 2024 16:57:16 +0200 Subject: [PATCH 1/2] Fix from PR 27 of the forked repo. --- src/mdns.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mdns.rs b/src/mdns.rs index 1150686..4bdd371 100644 --- a/src/mdns.rs +++ b/src/mdns.rs @@ -7,6 +7,8 @@ use futures_core::Stream; use std::sync::Arc; use async_std::net::UdpSocket; +use net2::UdpSocketExt; + #[cfg(not(target_os = "windows"))] use net2::unix::UnixUdpBuilderExt; use std::net::SocketAddr; @@ -23,6 +25,7 @@ pub fn mdns_interface( socket.set_multicast_loop_v4(false)?; socket.join_multicast_v4(&MULTICAST_ADDR, &interface_addr)?; + socket.set_multicast_if_v4(&interface_addr)?; let socket = Arc::new(UdpSocket::from(socket)); From 79df51c7629a20faccc07ed70b39a6de321d985a Mon Sep 17 00:00:00 2001 From: Sergej Zuyev Date: Tue, 7 May 2024 11:50:29 +0200 Subject: [PATCH 2/2] Update dependencies. Replace err-derive with thiserror and proper display impl. Bump async-stream to 0.3.5 --- Cargo.toml | 4 ++-- src/errors.rs | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index cdaf664..8b55c13 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,9 +20,9 @@ keywords = ["mdns", "dns", "multicast", "chromecast", "discovery"] [dependencies] dns-parser = "0.8.0" net2 = "0.2" -err-derive = "0.2.1" +thiserror = "1.0.60" futures-core = "0.3.1" futures-util = "0.3.1" log = "0.4" -async-stream = "0.2.0" +async-stream = "0.3.5" async-std = { version = "1.6.2", features = ["unstable", "attributes"] } diff --git a/src/errors.rs b/src/errors.rs index c625d8b..98a764b 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -1,11 +1,11 @@ -use err_derive::Error; +use thiserror::Error; #[derive(Debug, Error)] pub enum Error { - #[error(display = "_0")] - Io(#[error(source)] std::io::Error), - #[error(display = "_0")] - Dns(#[error(source)] dns_parser::Error), - #[error(display = "_0")] - TimeoutError(#[error(source)] async_std::future::TimeoutError), + #[error("{0}")] + Io(#[from] std::io::Error), + #[error("{0}")] + Dns(#[from] dns_parser::Error), + #[error("{0}")] + TimeoutError(#[from] async_std::future::TimeoutError), }