diff options
author | Jake McGinty <me@jake.su> | 2018-04-13 21:02:53 -0700 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-04-22 14:08:48 -0700 |
commit | c713d75d0d616f1f6e2662396bd49e272fb0e5a7 (patch) | |
tree | eda121e90c685d2a227fd9b3cb79d88248fc6fe4 /src/udp/frame.rs | |
parent | udp: dual-stack single socket -> dual socket (diff) | |
download | wireguard-rs-c713d75d0d616f1f6e2662396bd49e272fb0e5a7.tar.xz wireguard-rs-c713d75d0d616f1f6e2662396bd49e272fb0e5a7.zip |
udp: parse in(6)_pktinfo cmsgs
Diffstat (limited to 'src/udp/frame.rs')
-rw-r--r-- | src/udp/frame.rs | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/src/udp/frame.rs b/src/udp/frame.rs index f04b004..e8f3b69 100644 --- a/src/udp/frame.rs +++ b/src/udp/frame.rs @@ -140,27 +140,12 @@ pub type PeerServerMessage = (SocketAddr, Vec<u8>); pub struct VecUdpCodec; impl VecUdpCodec { fn decode(&mut self, src: &SocketAddr, buf: &[u8]) -> io::Result<PeerServerMessage> { - let unmapped_ip = match src.ip() { - IpAddr::V6(v6addr) => { - if let Some(v4addr) = v6_mapped_to_v4(v6addr) { - IpAddr::V4(v4addr) - } else { - IpAddr::V6(v6addr) - } - } - v4addr => v4addr - }; - Ok((SocketAddr::new(unmapped_ip, src.port()), buf.to_vec())) + Ok((*src, buf.to_vec())) } fn encode(&mut self, msg: PeerServerMessage, buf: &mut Vec<u8>) -> SocketAddr { let (mut addr, mut data) = msg; buf.append(&mut data); - let mapped_ip = match addr.ip() { - IpAddr::V4(v4addr) => IpAddr::V6(v4addr.to_ipv6_mapped()), - v6addr => v6addr - }; - addr.set_ip(mapped_ip); addr } } |