diff options
| author | bors <bors@rust-lang.org> | 2015-03-26 09:43:35 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-03-26 09:43:35 +0000 |
| commit | 1501f33e76f6f9621aa08fb0cbbc5f85a5ac7f0f (patch) | |
| tree | fd92289ecff12f2cabc9e879bc3621d8a20a5291 /src/libstd/sys | |
| parent | b0fd67b3e75dc2cc52a941733bd5dde574338779 (diff) | |
| parent | 8165bc14fbc8456c35dc54fb6255456bea30db59 (diff) | |
| download | rust-1501f33e76f6f9621aa08fb0cbbc5f85a5ac7f0f.tar.gz rust-1501f33e76f6f9621aa08fb0cbbc5f85a5ac7f0f.zip | |
Auto merge of #23711 - alexcrichton:ip-addr, r=aturon
This commits adds back an `IpAddr` enum matching the `SocketAddr` enum, but without a port. The enumeration is `#[unstable]`. The `lookup_host` function and iterator are also destabilized behind a new feature gate due to questions around the semantics of returning `SocketAddr` values.
Diffstat (limited to 'src/libstd/sys')
| -rw-r--r-- | src/libstd/sys/common/net2.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/libstd/sys/common/net2.rs b/src/libstd/sys/common/net2.rs index 25aeab1b4ff..e213a86644f 100644 --- a/src/libstd/sys/common/net2.rs +++ b/src/libstd/sys/common/net2.rs @@ -14,7 +14,7 @@ use ffi::CString; use io::{self, Error, ErrorKind}; use libc::{self, c_int, c_char, c_void, socklen_t}; use mem; -use net::{SocketAddr, Shutdown}; +use net::{SocketAddr, Shutdown, IpAddr}; use sys::c; use sys::net::{cvt, cvt_r, cvt_gai, Socket, init, wrlen_t}; use sys_common::{AsInner, FromInner, IntoInner}; @@ -334,39 +334,39 @@ impl UdpSocket { libc::IP_MULTICAST_LOOP, on as c_int) } - pub fn join_multicast(&self, multi: &SocketAddr) -> io::Result<()> { + pub fn join_multicast(&self, multi: &IpAddr) -> io::Result<()> { match *multi { - SocketAddr::V4(..) => { + IpAddr::V4(..) => { self.set_membership(multi, libc::IP_ADD_MEMBERSHIP) } - SocketAddr::V6(..) => { + IpAddr::V6(..) => { self.set_membership(multi, libc::IPV6_ADD_MEMBERSHIP) } } } - pub fn leave_multicast(&self, multi: &SocketAddr) -> io::Result<()> { + pub fn leave_multicast(&self, multi: &IpAddr) -> io::Result<()> { match *multi { - SocketAddr::V4(..) => { + IpAddr::V4(..) => { self.set_membership(multi, libc::IP_DROP_MEMBERSHIP) } - SocketAddr::V6(..) => { + IpAddr::V6(..) => { self.set_membership(multi, libc::IPV6_DROP_MEMBERSHIP) } } } - fn set_membership(&self, addr: &SocketAddr, opt: c_int) -> io::Result<()> { + fn set_membership(&self, addr: &IpAddr, opt: c_int) -> io::Result<()> { match *addr { - SocketAddr::V4(ref addr) => { + IpAddr::V4(ref addr) => { let mreq = libc::ip_mreq { - imr_multiaddr: *addr.ip().as_inner(), + imr_multiaddr: *addr.as_inner(), // interface == INADDR_ANY imr_interface: libc::in_addr { s_addr: 0x0 }, }; setsockopt(&self.inner, libc::IPPROTO_IP, opt, mreq) } - SocketAddr::V6(ref addr) => { + IpAddr::V6(ref addr) => { let mreq = libc::ip6_mreq { - ipv6mr_multiaddr: *addr.ip().as_inner(), + ipv6mr_multiaddr: *addr.as_inner(), ipv6mr_interface: 0, }; setsockopt(&self.inner, libc::IPPROTO_IPV6, opt, mreq) |
