aboutsummaryrefslogtreecommitdiffstats
path: root/src/udp/frame.rs
diff options
context:
space:
mode:
authorJake McGinty <me@jake.su>2018-04-13 21:02:53 -0700
committerJake McGinty <me@jake.su>2018-04-22 14:08:48 -0700
commitc713d75d0d616f1f6e2662396bd49e272fb0e5a7 (patch)
treeeda121e90c685d2a227fd9b3cb79d88248fc6fe4 /src/udp/frame.rs
parentudp: dual-stack single socket -> dual socket (diff)
downloadwireguard-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.rs17
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
}
}