From 6c0f1d75aa7f558c9f74736855a1f8f7c822fa3c Mon Sep 17 00:00:00 2001 From: Stephen D <webmaster@scd31.com> Date: Thu, 30 Nov 2023 17:22:33 -0400 Subject: [PATCH] don't log packets we didn't decode --- src/gate.rs | 92 ++++++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 47 deletions(-) diff --git a/src/gate.rs b/src/gate.rs index c94d173..2334635 100644 --- a/src/gate.rs +++ b/src/gate.rs @@ -119,63 +119,61 @@ pub async fn packet_handler( .context("Packet receive channel died")?; let mut buf = [0; MAX_PACKET_LEN]; - match attempt_decode(&packet, &mut buf) { - Ok(mut packet) => { - let mut buf2 = [0; MAX_PACKET_LEN]; - let mut internet_packet = packet.clone_backing(&mut buf2); - match append_internet_to_packet_route(&callsign, ssid, &mut internet_packet) { - Some(()) => match internet_packet.semi_encode() { - Ok(encoded) => { - let semi = SemiPacketIn { - raw: encoded.to_vec(), - uuid: uuid.into(), - }; + if let Ok(mut packet) = attempt_decode(&packet, &mut buf) { + let mut buf2 = [0; MAX_PACKET_LEN]; + let mut internet_packet = packet.clone_backing(&mut buf2); + match append_internet_to_packet_route(&callsign, ssid, &mut internet_packet) { + Some(()) => match internet_packet.semi_encode() { + Ok(encoded) => { + let semi = SemiPacketIn { + raw: encoded.to_vec(), + uuid: uuid.into(), + }; - let _ = tx.send(semi); - } + let _ = tx.send(semi); + } - Err(e) => { - eprintln!("Could not semi-encode packet: {e:?}"); - } - }, - None => { - eprintln!("Could not add routing to packet before gating to the Internet. Skipping"); + Err(e) => { + eprintln!("Could not semi-encode packet: {e:?}"); } + }, + None => { + eprintln!( + "Could not add routing to packet before gating to the Internet. Skipping" + ); } + } - match packet.should_digipeat(&callsign, ssid) { - Ok(()) => { - if let Err(e) = packet.append_to_route(&callsign, ssid) { - eprintln!( - "Could not add routing to packet before digipeating: {e}. Skipping" - ); - continue; - }; - - let mut encoded_buf = [0; MAX_PACKET_LEN]; - let mut encoded = Buffer::new_empty(&mut encoded_buf); - match packet.fully_encode(&mut encoded) { - Ok(()) => { - packet_send - .send(encoded.to_vec()) - .await - .with_context(|| "Packet send channel died")?; - } + match packet.should_digipeat(&callsign, ssid) { + Ok(()) => { + if let Err(e) = packet.append_to_route(&callsign, ssid) { + eprintln!( + "Could not add routing to packet before digipeating: {e}. Skipping" + ); + continue; + }; - Err(e) => { - eprintln!("Could not fully-encode packet: {e:?}"); - } + let mut encoded_buf = [0; MAX_PACKET_LEN]; + let mut encoded = Buffer::new_empty(&mut encoded_buf); + match packet.fully_encode(&mut encoded) { + Ok(()) => { + packet_send + .send(encoded.to_vec()) + .await + .with_context(|| "Packet send channel died")?; } - } - Err(e) => { - eprintln!("Not digipeating: {e}"); + Err(e) => { + eprintln!("Could not fully-encode packet: {e:?}"); + } } - }; - } + } - Err(e) => eprintln!("Recv error: {e}"), - }; + Err(e) => { + eprintln!("Not digipeating: {e}"); + } + }; + } } } -- GitLab