summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
6e9d9ba)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
if let Some(got) = got {
//eprintln!("got={:?}", DumpHex(&got));
if let Some(got) = got {
//eprintln!("got={:?}", DumpHex(&got));
- match checkn(SlipNoConv,ic.mtu, &got, &mut rx_queue, |header| {
+ match checkn(SlipNoConv,ic.mtu, &got, |header| {
let addr = ip_packet_addr::<true>(header)?;
if addr != ic.link.client.0 { throw!(PE::Dst(addr)) }
Ok(())
let addr = ip_packet_addr::<true>(header)?;
if addr != ic.link.client.0 { throw!(PE::Dst(addr)) }
Ok(())
- }, |e| error!("{} #{}: rx discarding: {}", &ic, req_num, e)) {
+ }, |o| rx_queue.push(o),
+ |e| error!("{} #{}: rx discarding: {}", &ic, req_num, e))
+ {
Ok(()) => reporter.lock().success(),
Err(ErrorOnlyBad) => {
reqs.push(Box::pin(async {
Ok(()) => reporter.lock().success(),
Err(ErrorOnlyBad) => {
reqs.push(Box::pin(async {
mime: M,
mtu: u32,
data: &[u8],
mime: M,
mtu: u32,
data: &[u8],
-) where OUT: Extend<Box<[u8]>>,
- AC: Fn(&[u8]) -> Result<(), PacketError> + Copy,
+) where AC: Fn(&[u8]) -> Result<(), PacketError> + Copy,
+ OUT: FnMut(Box<[u8]>),
EH: FnMut(PacketError),
{
// eprintln!("before: {:?}", DumpHex(data));
EH: FnMut(PacketError),
{
// eprintln!("before: {:?}", DumpHex(data));
match check1(mime, mtu, packet, addr_chk) {
Err(PacketError::Empty) => { }
Err(e) => { err=true; error_handler(e); },
match check1(mime, mtu, packet, addr_chk) {
Err(PacketError::Empty) => { }
Err(e) => { err=true; error_handler(e); },
- Ok(packet) => { ok=true; out.extend(iter::once(packet)); },
+ Ok(packet) => { ok=true; out(packet); },
}
}
// eprintln!(" after: {:?}", DumpHex(data));
}
}
// eprintln!(" after: {:?}", DumpHex(data));