From b47e218cbb0534bc4800be3813de299596eefea0 Mon Sep 17 00:00:00 2001 From: dignifiedquire Date: Tue, 11 Nov 2025 11:47:12 +0100 Subject: [PATCH 1/2] feat(netwatch): impl Clone for UdpSender --- netwatch/src/udp.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/netwatch/src/udp.rs b/netwatch/src/udp.rs index 3314bd54..b5bf152e 100644 --- a/netwatch/src/udp.rs +++ b/netwatch/src/udp.rs @@ -863,6 +863,12 @@ pin_project_lite::pin_project! { } } +impl Clone for UdpSender { + fn clone(&self) -> Self { + self.socket.clone().create_sender() + } +} + impl std::fmt::Debug for UdpSender { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.write_str("UdpSender") From a61217b5270424c1de697bfe89eec1db903f135a Mon Sep 17 00:00:00 2001 From: dignifiedquire Date: Tue, 11 Nov 2025 13:26:09 +0100 Subject: [PATCH 2/2] fixup: avoid double clone --- netwatch/src/udp.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netwatch/src/udp.rs b/netwatch/src/udp.rs index b5bf152e..2a609ed9 100644 --- a/netwatch/src/udp.rs +++ b/netwatch/src/udp.rs @@ -447,7 +447,7 @@ impl UdpSocket { /// Creates a [`UdpSender`] sender. pub fn create_sender(self: Arc) -> UdpSender { - UdpSender::new(self.clone()) + UdpSender::new(self) } /// Whether transmitted datagrams might get fragmented by the IP layer