chiark / gitweb /
slip: reamee processn and process1
[hippotat.git] / server / suser.rs
index dec1a5aacd4cce857193fcc1cbe80afe224f48da..dd580b6ebe09368a09d705e8b2fa67c9b07e3907 100644 (file)
@@ -61,12 +61,14 @@ pub async fn run(global: Arc<Global>,
     select!{
       biased;
 
+      // xxx something something routed something
+
       req = web.recv() =>
       {
         let WebRequest {
           initial, initial_remaining, length_hint, mut body,
           boundary_finder,
-          reply_to, conn, mut warnings,
+          reply_to, conn, mut warnings, may_route,
         } = req.ok_or_else(|| anyhow!("webservers all shut down!"))?;
 
         match async {
@@ -136,14 +138,15 @@ pub async fn run(global: Arc<Global>,
             if comp.name != PartName::d {
               warnings.add(&format_args!("unexpected part {:?}", comp.name))?;
             }
-            checkn(Mime2Slip, mtu, comp.payload, |header| {
+            slip::processn(Mime2Slip, mtu, comp.payload, |header| {
               let saddr = ip_packet_addr::<false>(header)?;
               if saddr != ic.link.client.0 { throw!(PE::Src(saddr)) }
               let daddr = ip_packet_addr::<true>(header)?;
               Ok(daddr)
             }, |(daddr,packet)| route_packet(
-              &global, &conn, Some(&ic.link.client), daddr,packet
-            ),
+              &global, &conn, Some(&ic.link.client), daddr,
+              packet, may_route.clone(),
+            ).map(Ok),
               |e| Ok::<_,SlipFramesError<_>>({ warnings.add(&e)?; })
             ).await?;
           }