diff options
author | 2018-02-19 13:48:40 +0000 | |
---|---|---|
committer | 2018-02-19 13:48:40 +0000 | |
commit | d4a4c504642646bd4620a1e994c550a9f68f45f2 (patch) | |
tree | c4f2f838bc9f1ef420e2e669dc0e8519bdfae784 /src/interface/mod.rs | |
parent | let tun crate take care of tun headers (diff) | |
download | wireguard-rs-d4a4c504642646bd4620a1e994c550a9f68f45f2.tar.xz wireguard-rs-d4a4c504642646bd4620a1e994c550a9f68f45f2.zip |
ignore incoming tunnel headers, just look at IP version
Diffstat (limited to 'src/interface/mod.rs')
-rw-r--r-- | src/interface/mod.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/interface/mod.rs b/src/interface/mod.rs index e0f811d..93c926c 100644 --- a/src/interface/mod.rs +++ b/src/interface/mod.rs @@ -75,9 +75,9 @@ impl UtunCodec for VecUtunCodec { fn decode(&mut self, buf: &[u8]) -> io::Result<Self::In> { trace!("utun packet type {}", buf[3]); - match buf[3] { - 0x02 => Ok(UtunPacket::Inet4(buf[4..].to_vec())), // AF_INET - 0x1e => Ok(UtunPacket::Inet6(buf[4..].to_vec())), // AF_INET6 + match buf[4] >> 4 { + 4 => Ok(UtunPacket::Inet4(buf[4..].to_vec())), + 6 => Ok(UtunPacket::Inet4(buf[4..].to_vec())), _ => Err(io::ErrorKind::InvalidData.into()) } } |