aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJake McGinty <me@jake.su>2018-04-19 23:38:30 -0700
committerJake McGinty <me@jake.su>2018-04-22 14:09:15 -0700
commit2ab0f92aa13854da477c9464028a4cd310006ee4 (patch)
treedfd839827548b339656e55820ccea9af76e480e5 /src
parenttests: make test output a little easier to work out (diff)
downloadwireguard-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.rs9
-rw-r--r--src/udp/mod.rs16
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"))