chiark / gitweb /
sort out error handling for server rx slip frames
[hippotat.git] / src / bin / client.rs
index 10b207698e5c005e90afc7a3caa1d1a218e7c9c3..cfb632e8ce359ed2d89d643854e52aa2c0258fe2 100644 (file)
@@ -282,16 +282,20 @@ async fn run_client<C:HCC>(
               let addr = ip_packet_addr::<true>(header)?;
               if addr != ic.link.client.0 { throw!(PE::Dst(addr)) }
               Ok(())
-            }, |(o,())| Ok({ rx_queue.push(o); }),
-               |e| error!("{} #{}: rx discarding: {}", &ic, req_num, e))
+            },
+            |(o,())| Ok({ rx_queue.push(o); }),
+            |e| Ok::<_,SlipFramesError<Void>>( {
+              error!("{} #{}: rx discarding: {}", &ic, req_num, e);
+            }))
             {
               Ok(()) => reporter.lock().success(),
-              Err(ErrorOnlyBad) => {
+              Err(SlipFramesError::ErrorOnlyBad) => {
                 reqs.push(Box::pin(async {
                   tokio::time::sleep(ic.http_retry).await;
                   None
                 }));
               },
+              Err(SlipFramesError::Other(v)) => unreachable!(v),
             }
           }
         },