From d02d2ada381286434b42b7d2dbba7b6c3c18bc85 Mon Sep 17 00:00:00 2001 From: Stephen D <webmaster@scd31.com> Date: Thu, 11 Jan 2024 17:51:41 -0400 Subject: [PATCH] Fix bug where we exit instantly if felinet is disabled --- src/gate.rs | 4 ++-- src/main.rs | 19 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/gate.rs b/src/gate.rs index b6e8b6d..7c00072 100644 --- a/src/gate.rs +++ b/src/gate.rs @@ -273,13 +273,13 @@ pub async fn felinet_send_forever( pub async fn felinet_receive_forever( mut client: HandlerClient<Channel>, mut modem_send: mpsc::Sender<Vec<u8>>, - callsign: &str, + callsign: String, ssid: u8, uuid: Uuid, ) { loop { if let Err(e) = - felinet_receive_once(&mut client, &mut modem_send, callsign, ssid, uuid).await + felinet_receive_once(&mut client, &mut modem_send, &callsign, ssid, uuid).await { eprintln!("FELINET RX error: {e}. Reconnecting..."); }; diff --git a/src/main.rs b/src/main.rs index 3a67e9a..5e0173e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -111,14 +111,6 @@ async fn gate_forever( let temperature_mutex = radio.temperature_mutex(); - tokio::task::spawn(async move { - loop { - if let Err(e) = radio.process_forever().await { - eprintln!("Radio error: {e}") - } - } - }); - let tx = broadcast::Sender::new(16); beacon_forever( @@ -190,8 +182,15 @@ async fn gate_forever( }); } - felinet_receive_forever(client, packet_send, &callsign, config.ssid, uuid).await; + let ssid = config.ssid; + tokio::task::spawn(async move { + felinet_receive_forever(client, packet_send, callsign, ssid, uuid).await; + }); } - Ok(()) + loop { + if let Err(e) = radio.process_forever().await { + eprintln!("Radio error: {e}") + } + } } -- GitLab