diff --git a/spellcheck.dic b/spellcheck.dic index a8140e3b7e2..6434e68bc2d 100644 --- a/spellcheck.dic +++ b/spellcheck.dic @@ -1,4 +1,4 @@ -306 +307 & + < @@ -184,6 +184,7 @@ mut mutex Mutex Nagle +namespace nonblocking nondecreasing noop diff --git a/tokio/src/net/unix/socketaddr.rs b/tokio/src/net/unix/socketaddr.rs index 9ef49ac4053..fd7e3e236f5 100644 --- a/tokio/src/net/unix/socketaddr.rs +++ b/tokio/src/net/unix/socketaddr.rs @@ -12,7 +12,7 @@ pub struct SocketAddr(pub(super) std::os::unix::net::SocketAddr); impl SocketAddr { /// Returns `true` if the address is unnamed. /// - /// Documentation reflected in [`SocketAddr`] + /// Documentation reflected in [`SocketAddr`]. /// /// [`SocketAddr`]: std::os::unix::net::SocketAddr pub fn is_unnamed(&self) -> bool { @@ -21,12 +21,30 @@ impl SocketAddr { /// Returns the contents of this address if it is a `pathname` address. /// - /// Documentation reflected in [`SocketAddr`] + /// Documentation reflected in [`SocketAddr`]. /// /// [`SocketAddr`]: std::os::unix::net::SocketAddr pub fn as_pathname(&self) -> Option<&Path> { self.0.as_pathname() } + + /// Returns the contents of this address if it is in the abstract namespace. + /// + /// Documentation reflected in [`SocketAddrExt`]. + /// The abstract namespace is a Linux-specific feature. + /// + /// + /// [`SocketAddrExt`]: std::os::linux::net::SocketAddrExt + #[cfg(any(target_os = "linux", target_os = "android"))] + #[cfg_attr(docsrs, doc(cfg(any(target_os = "linux", target_os = "android"))))] + pub fn as_abstract_name(&self) -> Option<&[u8]> { + #[cfg(target_os = "android")] + use std::os::android::net::SocketAddrExt; + #[cfg(target_os = "linux")] + use std::os::linux::net::SocketAddrExt; + + self.0.as_abstract_name() + } } impl fmt::Debug for SocketAddr {