chiark / gitweb /
server messages
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Aug 2021 00:33:00 +0000 (01:33 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 22 Aug 2021 00:33:00 +0000 (01:33 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
server/slocal.rs
server/sweb.rs

index 09e6aba82cbdf0813a202d5b1c86c499c8eff3ff..130df23942b4c9de28d630aa9c7281635ff770e2 100644 (file)
@@ -30,20 +30,26 @@ pub async fn run(global: Arc<Global>,
           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,
index 4998bd9f85e6d9d9f5f38bf89f304670c00bf309..d4e825e0886f60b093cf99e455379cc38b6a6153 100644 (file)
@@ -178,8 +178,7 @@ pub async fn handle(
     // 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,