aboutsummaryrefslogtreecommitdiffstats
path: root/src/interface/mod.rs
diff options
context:
space:
mode:
authorJake McGinty <me@jake.su>2018-02-19 13:48:40 +0000
committerJake McGinty <me@jake.su>2018-02-19 13:48:40 +0000
commitd4a4c504642646bd4620a1e994c550a9f68f45f2 (patch)
treec4f2f838bc9f1ef420e2e669dc0e8519bdfae784 /src/interface/mod.rs
parentlet tun crate take care of tun headers (diff)
downloadwireguard-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.rs6
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())
}
}