match checkn(SlipNoConv, global.config.mtu, &data, |header|{
let saddr = ip_packet_addr::<false>(header)?;
let daddr = ip_packet_addr::<true>(header)?;
- if ! global.config.vnetwork.iter().any(|n| n.contains(&saddr)) {
- throw!(PE::Src(saddr))
+ Ok((saddr,daddr))
+ }, |(data, (saddr, daddr))| {
+ let global = &global;
+ let may_route = &may_route;
+ async move {
+ if ! global.config.vnetwork.iter().any(|n| n.contains(&saddr)) {
+ trace!( "ipif local discard outside-vnets saddr={:?}",
+ saddr);
+ return Ok(())
+ }
+
+ route_packet(
+ &global, "ipif", None,
+ data, daddr, may_route.clone()
+ ).await;
+
+ Ok(())
}
- Ok(daddr)
- }, |(data, daddr)| route_packet(
- &global, "ipif", None,
- data, daddr, may_route.clone()
- ).map(Ok), |pe| Ok(match pe {
+ }, |pe| Ok(match pe {
PE::Empty => { },
- PE::Src(saddr) => trace!(
- target: "hippotatd",
- "ipif local discard outside-vnets saddr={:?}",
- saddr
- ),
other => throw!(other),
})).await {
Ok(()) => goodness += 1,
// boundary, start, &comp.name, &client.ic);
let (reply_to, reply_recv) = oneshot::channel();
- trace!(target: "hippotatd",
- "{} {} request, Content-Length={}",
+ trace!("{} {} request, Content-Length={}",
&conn, &client_name, length_hint);
let wreq = WebRequest {
initial,