Enum nix::sys::socket::SockAddr [−][src]
pub enum SockAddr {
Inet(InetAddr),
Unix(UnixAddr),
Netlink(NetlinkAddr),
Alg(AlgAddr),
Link(LinkAddr),
Vsock(VsockAddr),
}Represents a socket address
Variants
Inet(InetAddr)Unix(UnixAddr)Netlink(NetlinkAddr)Alg(AlgAddr)Link(LinkAddr)Datalink address (MAC)
Vsock(VsockAddr)Implementations
impl SockAddr[src]
impl SockAddr[src]pub fn new_inet(addr: InetAddr) -> SockAddr[src]
pub fn new_unix<P: ?Sized + NixPath>(path: &P) -> Result<SockAddr>[src]
pub fn new_netlink(pid: u32, groups: u32) -> SockAddr[src]
pub fn new_alg(alg_type: &str, alg_name: &str) -> SockAddr[src]
pub fn new_vsock(cid: u32, port: u32) -> SockAddr[src]
pub fn family(&self) -> AddressFamily[src]
pub fn to_str(&self) -> String[src]
pub unsafe fn from_libc_sockaddr(addr: *const sockaddr) -> Option<SockAddr>[src]
Creates a SockAddr struct from libc’s sockaddr.
Supports only the following address families: Unix, Inet (v4 & v6), Netlink and System. Returns None for unsupported families.
pub unsafe fn as_ffi_pair(&self) -> (&sockaddr, socklen_t)[src]
Conversion from nix’s SockAddr type to the underlying libc sockaddr type.
This is useful for interfacing with other libc functions that don’t yet have nix wrappers. Returns a reference to the underlying data type (as a sockaddr reference) along with the size of the actual data type. sockaddr is commonly used as a proxy for a superclass as C doesn’t support inheritance, so many functions that take a sockaddr * need to take the size of the underlying type as well and then internally cast it back.