diff options
author | Jake McGinty <me@jake.su> | 2018-04-19 23:38:30 -0700 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-04-22 14:09:15 -0700 |
commit | 2ab0f92aa13854da477c9464028a4cd310006ee4 (patch) | |
tree | dfd839827548b339656e55820ccea9af76e480e5 /src | |
parent | tests: make test output a little easier to work out (diff) | |
download | wireguard-rs-2ab0f92aa13854da477c9464028a4cd310006ee4.tar.xz wireguard-rs-2ab0f92aa13854da477c9464028a4cd310006ee4.zip |
udp: fix bug with ipv6 pktinfo
Diffstat (limited to 'src')
-rw-r--r-- | src/interface/peer_server.rs | 9 | ||||
-rw-r--r-- | src/udp/mod.rs | 16 |
2 files changed, 18 insertions, 7 deletions
diff --git a/src/interface/peer_server.rs b/src/interface/peer_server.rs index 40a1a23..954b3a0 100644 --- a/src/interface/peer_server.rs +++ b/src/interface/peer_server.rs @@ -452,7 +452,14 @@ impl Future for PeerServer { let _ = self.handle_ingress_packet(addr, packet).map_err(|e| warn!("UDP ERR: {:?}", e)); }, Ok(Async::NotReady) => break, - Ok(Async::Ready(None)) | Err(_) => return Err(()), + Ok(Async::Ready(None)) => { + error!("AHHHHHHHHHH Async::Ready(None) returned by UDP!!"); + return Err(()); + }, + Err(e) => { + error!("AHHHHHHHHHH {:?}", e); + return Err(()); + } } } } diff --git a/src/udp/mod.rs b/src/udp/mod.rs index 6730824..b937fda 100644 --- a/src/udp/mod.rs +++ b/src/udp/mod.rs @@ -162,11 +162,13 @@ impl UdpSocket { return Err(io::ErrorKind::WouldBlock.into()) } - let cmsgs = match *target { - Endpoint::V4(addr, Some(ref pktinfo)) => vec![ControlMessage::Ipv4PacketInfo(pktinfo)], - Endpoint::V6(addr, Some(ref pktinfo)) => vec![ControlMessage::Ipv6PacketInfo(pktinfo)], - _ => vec![] - }; + // let cmsgs = match *target { + // Endpoint::V4(addr, Some(ref pktinfo)) => vec![ControlMessage::Ipv4PacketInfo(pktinfo)], + // Endpoint::V6(addr, Some(ref pktinfo)) => vec![ControlMessage::Ipv6PacketInfo(pktinfo)], + // _ => vec![] + // }; + + let cmsgs = vec![]; match *target { Endpoint::V4(addr, Some(ref pktinfo)) => trace!("sending cmsg: {:?}", pktinfo), @@ -233,7 +235,9 @@ impl UdpSocket { let endpoint = Endpoint::V6(addr.to_std(), Some(*info)); Ok((msg.bytes, endpoint)) }, - _ => Err(io::Error::new(io::ErrorKind::Other, "missing pktinfo")) + _ => { + Err(io::Error::new(io::ErrorKind::Other, "missing pktinfo")) + } } } else { Err(io::Error::new(io::ErrorKind::Other, "invalid source address")) |