-
-
Notifications
You must be signed in to change notification settings - Fork 49
Open
Description
Lines 733 to 752 in 319f7fb
fn addr2raw( | |
addr: &std::net::SocketAddr, | |
) -> (*const libc::sockaddr, libc::socklen_t) { | |
match *addr { | |
std::net::SocketAddr::V4(ref a) => { | |
let b: *const std::net::SocketAddrV4 = a; | |
( | |
b as *const _, | |
std::mem::size_of_val(a) as libc::socklen_t, | |
) | |
} | |
std::net::SocketAddr::V6(ref a) => { | |
let b: *const std::net::SocketAddrV6 = a; | |
( | |
b as *const _, | |
std::mem::size_of_val(a) as libc::socklen_t, | |
) | |
} | |
} | |
} |
This code assumes that the layout of std::net::SocketAddrV{4,6}
matches libc::sockaddr
, but std makes no such promise. See rust-lang/rust#78802 for more details.
Example fixes: tokio-rs/mio#1388, rust-lang/socket2#120.
slanterns, madsmtm, tux3, qm3ster, rwestphal and 3 more
Metadata
Metadata
Assignees
Labels
No labels