From bf9299b199c64dc29fff4f2bc63b260263f9da59 Mon Sep 17 00:00:00 2001 From: Shaun Cox Date: Fri, 26 Sep 2025 09:12:50 -0700 Subject: [PATCH 1/2] Add example to create SockAddr from libc::sockaddr_storage --- src/sockaddr.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/sockaddr.rs b/src/sockaddr.rs index 870b2828..f4a86aff 100644 --- a/src/sockaddr.rs +++ b/src/sockaddr.rs @@ -49,6 +49,22 @@ impl SockAddrStorage { /// # Safety /// /// The type `T` must be one of the `sockaddr_*` types defined by this platform. + /// + /// # Examples + /// ``` + /// # #[allow(dead_code)] + /// # #[cfg(unix)] mod unix_example { + /// use libc::sockaddr_storage; + /// use socket2::{SockAddr, SockAddrStorage, socklen_t}; + /// + /// fn from_sockaddr_storage(recv_address: &sockaddr_storage) -> SockAddr { + /// let mut storage = SockAddrStorage::zeroed(); + /// let libc_address = unsafe { storage.view_as::() }; + /// *libc_address = *recv_address; + /// unsafe { SockAddr::new(storage, size_of::() as socklen_t) } + /// } + /// # } + /// ``` #[inline] pub unsafe fn view_as(&mut self) -> &mut T { assert!(size_of::() <= size_of::()); From 55ca6d79df23ee92de13504757128d48cda20d47 Mon Sep 17 00:00:00 2001 From: Alice Ryhl Date: Sat, 11 Oct 2025 12:41:53 +0200 Subject: [PATCH 2/2] Import size_of --- src/sockaddr.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sockaddr.rs b/src/sockaddr.rs index f4a86aff..788ae615 100644 --- a/src/sockaddr.rs +++ b/src/sockaddr.rs @@ -54,6 +54,7 @@ impl SockAddrStorage { /// ``` /// # #[allow(dead_code)] /// # #[cfg(unix)] mod unix_example { + /// # use core::mem::size_of; /// use libc::sockaddr_storage; /// use socket2::{SockAddr, SockAddrStorage, socklen_t}; ///