提交 6c983a73 编写于 作者: S Stefan Lankes

use Ipv6Addr::from to build the IPv6 address

上级 9c9f21fb
......@@ -148,18 +148,7 @@ pub fn peer_addr(&self) -> io::Result<SocketAddr> {
IpAddr::V4(Ipv4Addr::new(addr.0[0], addr.0[1], addr.0[2], addr.0[3])),
port,
),
Ipv6(ref addr) => SocketAddr::new(
IpAddr::V6(Ipv6Addr::new(
((addr.0[0] as u16) << 8) | addr.0[1] as u16,
((addr.0[2] as u16) << 8) | addr.0[3] as u16,
((addr.0[4] as u16) << 8) | addr.0[5] as u16,
((addr.0[6] as u16) << 8) | addr.0[7] as u16,
((addr.0[8] as u16) << 8) | addr.0[9] as u16,
((addr.0[10] as u16) << 8) | addr.0[11] as u16,
((addr.0[12] as u16) << 8) | addr.0[13] as u16,
((addr.0[14] as u16) << 8) | addr.0[15] as u16)),
port,
),
Ipv6(ref addr) => SocketAddr::new(IpAddr::V6(Ipv6Addr::from(addr.0)), port),
_ => {
return Err(io::Error::new(ErrorKind::Other, "peer_addr failed"));
},
......@@ -239,18 +228,7 @@ pub fn accept(&self) -> io::Result<(TcpStream, SocketAddr)> {
IpAddr::V4(Ipv4Addr::new(addr.0[0], addr.0[1], addr.0[2], addr.0[3])),
port,
),
Ipv6(ref addr) => SocketAddr::new(
IpAddr::V6(Ipv6Addr::new(
((addr.0[0] as u16) << 8) | addr.0[1] as u16,
((addr.0[2] as u16) << 8) | addr.0[3] as u16,
((addr.0[4] as u16) << 8) | addr.0[5] as u16,
((addr.0[6] as u16) << 8) | addr.0[7] as u16,
((addr.0[8] as u16) << 8) | addr.0[9] as u16,
((addr.0[10] as u16) << 8) | addr.0[11] as u16,
((addr.0[12] as u16) << 8) | addr.0[13] as u16,
((addr.0[14] as u16) << 8) | addr.0[15] as u16)),
port,
),
Ipv6(ref addr) => SocketAddr::new(IpAddr::V6(Ipv6Addr::from(addr.0)), port),
_ => {
return Err(io::Error::new(ErrorKind::Other, "accept failed"));
},
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册