net: add SocketAddr::as_abstract_name (#7491)

This commit is contained in:
Luca Bruno
2025-07-29 11:07:58 +02:00
committed by GitHub
parent 8fc62c06c7
commit 1b27e17ff8
2 changed files with 22 additions and 3 deletions
+2 -1
View File
@@ -1,4 +1,4 @@
306
307
&
+
<
@@ -184,6 +184,7 @@ mut
mutex
Mutex
Nagle
namespace
nonblocking
nondecreasing
noop
+20 -2
View File
@@ -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 {