Lines Matching defs:addr

21 use crate::sys::socket::addr::alg::AlgAddr;
23 use crate::sys::socket::addr::netlink::NetlinkAddr;
28 use crate::sys::socket::addr::sys_control::SysControlAddr;
43 pub(crate) const fn ipv4addr_to_libc(addr: net::Ipv4Addr) -> libc::in_addr {
48 mem::transmute(addr)
54 pub(crate) const fn ipv6addr_to_libc(addr: &net::Ipv6Addr) -> libc::in6_addr {
58 mem::transmute(*addr)
463 net::SocketAddr::V4(ref addr) => {
471 sin_port: addr.port().to_be(), // network byte order
472 sin_addr: Ipv4Addr::from_std(addr.ip()).0,
476 net::SocketAddr::V6(ref addr) => {
484 sin6_port: addr.port().to_be(), // network byte order
485 sin6_addr: Ipv6Addr::from_std(addr.ip()).0,
486 sin6_flowinfo: addr.flowinfo(), // host byte order
487 sin6_scope_id: addr.scope_id(), // host byte order
907 /// This pair of sockaddr_un & sun_len must be a valid unix addr, which
911 /// - if this is a unix addr with a pathname, sun.sun_path is a
1011 addr: *const libc::sockaddr,
1024 if (*addr).sa_family as i32 != libc::AF_UNIX {
1039 let su_len = len.unwrap_or((*addr).sa_len as libc::socklen_t);
1042 ptr::copy(addr as *const u8, sup, su_len as usize);
1115 /// - `addr`: raw pointer to something that can be cast to a
1121 /// data. For example, if `addr` points to a
1127 /// `addr` must be valid for the specific type of sockaddr. `len`, if
1128 /// present, must not exceed the length of valid data in `addr`.
1130 addr: *const libc::sockaddr,
1288 addr: *const libc::sockaddr,
1299 if (*addr).sa_family as i32 != libc::AF_INET {
1302 Some(Self(ptr::read_unaligned(addr as *const _)))
1332 fn from(addr: net::SocketAddrV4) -> Self {
1346 sin_port: addr.port().to_be(), // network byte order
1347 sin_addr: ipv4addr_to_libc(*addr.ip()),
1355 fn from(addr: SockaddrIn) -> Self {
1357 net::Ipv4Addr::from(addr.0.sin_addr.s_addr.to_ne_bytes()),
1358 u16::from_be(addr.0.sin_port),
1407 addr: *const libc::sockaddr,
1418 if (*addr).sa_family as i32 != libc::AF_INET6 {
1421 Some(Self(ptr::read_unaligned(addr as *const _)))
1449 fn from(addr: net::SocketAddrV6) -> Self {
1464 sin6_port: addr.port().to_be(), // network byte order
1465 sin6_addr: ipv6addr_to_libc(addr.ip()),
1466 sin6_flowinfo: addr.flowinfo(), // host byte order
1467 sin6_scope_id: addr.scope_id(), // host byte order
1475 fn from(addr: SockaddrIn6) -> Self {
1477 net::Ipv6Addr::from(addr.0.sin6_addr.s6_addr),
1478 u16::from_be(addr.0.sin6_port),
1479 addr.0.sin6_flowinfo,
1480 addr.0.sin6_scope_id,
1542 addr: *const libc::sockaddr,
1548 if addr.is_null() {
1560 ptr::copy(addr as *const u8, ssp, len as usize);
1575 // If length is not available and addr is of a fixed-length type,
1576 // copy it. If addr is of a variable length type and len is not
1578 match (*addr).sa_family as i32 {
1581 AlgAddr::from_raw(addr, l).map(|alg| Self { alg })
1585 SockaddrIn::from_raw(addr, l).map(|sin| Self { sin })
1589 SockaddrIn6::from_raw(addr, l).map(|sin6| Self { sin6 })
1603 LinkAddr::from_raw(addr, l).map(|dl| Self { dl })
1607 NetlinkAddr::from_raw(addr, l).map(|nl| Self { nl })
1616 LinkAddr::from_raw(addr, l).map(|dl| Self { dl })
1623 SysControlAddr::from_raw(addr, l).map(|sctl| Self { sctl })
1627 VsockAddr::from_raw(addr, l).map(|vsock| Self { vsock })
2031 pub fn new_inet(addr: InetAddr) -> SockAddr {
2032 SockAddr::Inet(addr)
2118 addr: *const libc::sockaddr,
2120 if addr.is_null() {
2123 match AddressFamily::from_i32(i32::from((*addr).sa_family)) {
2127 InetAddr::V4(ptr::read_unaligned(addr as *const _)),
2131 InetAddr::V6(ptr::read_unaligned(addr as *const _)),
2135 NetlinkAddr(ptr::read_unaligned(addr as *const _)),
2142 SysControlAddr(ptr::read_unaligned(addr as *const _)),
2147 ptr::read_unaligned(addr as *const _),
2161 LinkAddr(ptr::read_unaligned(addr as *const _));
2170 ptr::read_unaligned(addr as *const _),
2189 SockAddr::Inet(InetAddr::V4(ref addr)) => (
2192 &*(addr as *const libc::sockaddr_in
2195 mem::size_of_val(addr) as libc::socklen_t,
2198 SockAddr::Inet(InetAddr::V6(ref addr)) => (
2201 &*(addr as *const libc::sockaddr_in6
2204 mem::size_of_val(addr) as libc::socklen_t,
2243 SockAddr::Link(LinkAddr(ref addr)) => (
2246 &*(addr as *const libc::sockaddr_ll
2249 mem::size_of_val(addr) as libc::socklen_t,
2261 SockAddr::Link(LinkAddr(ref addr)) => (
2264 &*(addr as *const libc::sockaddr_dl
2267 mem::size_of_val(addr) as libc::socklen_t,
2325 addr: *const libc::sockaddr,
2328 Self::from_libc_sockaddr(addr)
2336 use crate::sys::socket::addr::AddressFamily;
2353 let mut addr: sockaddr_nl = unsafe { mem::zeroed() };
2354 addr.nl_family = AddressFamily::Netlink as sa_family_t;
2355 addr.nl_pid = pid;
2356 addr.nl_groups = groups;
2358 NetlinkAddr(addr)
2375 addr: *const libc::sockaddr,
2386 if (*addr).sa_family as i32 != libc::AF_NETLINK {
2389 Some(Self(ptr::read_unaligned(addr as *const _)))
2423 addr: *const libc::sockaddr,
2435 if (*addr).sa_family as i32 != libc::AF_ALG {
2438 Some(Self(ptr::read_unaligned(addr as *const _)))
2487 let mut addr: sockaddr_alg = unsafe { mem::zeroed() };
2488 addr.salg_family = AF_ALG as u16;
2489 addr.salg_type[..alg_type.len()]
2491 addr.salg_name[..alg_name.len()]
2494 AlgAddr(addr)
2534 use crate::sys::socket::addr::AddressFamily;
2567 unsafe fn from_raw(addr: *const libc::sockaddr, len: Option<libc::socklen_t>)
2575 if (*addr).sa_family as i32 != libc::AF_SYSTEM {
2578 Some(Self(ptr::read_unaligned(addr as *const _)))
2592 let addr = libc::sockaddr_ctl {
2601 SysControlAddr(addr)
2679 pub fn addr(&self) -> Option<[u8; 6]> {
2693 if let Some(addr) = self.addr() {
2695 addr[0],
2696 addr[1],
2697 addr[2],
2698 addr[3],
2699 addr[4],
2700 addr[5])
2708 unsafe fn from_raw(addr: *const libc::sockaddr,
2717 if (*addr).sa_family as i32 != libc::AF_PACKET {
2720 Some(Self(ptr::read_unaligned(addr as *const _)))
2796 pub fn addr(&self) -> Option<[u8; 6]> {
2817 if let Some(addr) = self.addr() {
2819 addr[0],
2820 addr[1],
2821 addr[2],
2822 addr[3],
2823 addr[4],
2824 addr[5])
2832 unsafe fn from_raw(addr: *const libc::sockaddr,
2841 if (*addr).sa_family as i32 != libc::AF_LINK {
2844 Some(Self(ptr::read_unaligned(addr as *const _)))
2861 use crate::sys::socket::addr::AddressFamily;
2878 addr: *const libc::sockaddr,
2889 if (*addr).sa_family as i32 != libc::AF_VSOCK {
2892 Some(Self(ptr::read_unaligned(addr as *const _)))
2926 let mut addr: sockaddr_vm = unsafe { mem::zeroed() };
2927 addr.svm_family = AddressFamily::Vsock as sa_family_t;
2928 addr.svm_cid = cid;
2929 addr.svm_port = port;
2931 VsockAddr(addr)
3043 Some(dl) => assert_eq!(dl.addr(), Some([1, 2, 3, 4, 5, 6])),
3060 assert!(dl.addr().is_none());
3082 assert_eq!(dl.addr(), Some([24u8, 101, 144, 221, 76, 176]))
3104 sock_addr.as_link_addr().unwrap().addr(),
3139 let addr = SockaddrIn::from_str(s).unwrap();
3140 assert_eq!(s, format!("{}", addr));
3159 let addr = SockaddrIn6::from_str(s).unwrap();
3160 assert_eq!(s, format!("{}", addr));
3228 let addr = UnixAddr::new_abstract(name.as_bytes()).unwrap();
3231 unsafe { &(*addr.as_ptr()).sun_path[..addr.path_len()] };