From 35c935120a8c0f52c2056fde281df8187644ae95 Mon Sep 17 00:00:00 2001 From: ravenclaw900 <50060110+ravenclaw900@users.noreply.github.com> Date: Tue, 26 Oct 2021 07:46:26 -0500 Subject: [PATCH] fix(backend): fix errors for closed connections --- src/backend/src/sockets.rs | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/backend/src/sockets.rs b/src/backend/src/sockets.rs index 03db3f89..d5dba5ec 100644 --- a/src/backend/src/sockets.rs +++ b/src/backend/src/sockets.rs @@ -6,7 +6,7 @@ use std::sync::Arc; use std::{thread, time}; use tokio::sync::{ mpsc::{self, Receiver}, - Mutex, MutexGuard, + Mutex, }; use warp::ws::Message; @@ -30,11 +30,11 @@ async fn main_handler( .await; } }); - match data_recv.recv().await.unwrap() { - None => { + match data_recv.recv().await { + Some(None) | None => { handle.abort(); } - Some(_) => {} + Some(Some(_)) => {} } } @@ -56,12 +56,12 @@ async fn process_handler( } }); loop { - match data_recv.recv().await.unwrap() { - None => { + match data_recv.recv().await { + Some(None) | None => { handle.abort(); break; } - Some(data) => { + Some(Some(data)) => { let process = heim::process::get(data.args[0].parse::().unwrap()) .await .unwrap(); @@ -96,11 +96,11 @@ async fn software_handler( ))) .await; loop { - match data_recv.recv().await.unwrap() { - None => { + match data_recv.recv().await { + Some(None) | None => { break; } - Some(data) => { + Some(Some(data)) => { // We don't just want to run dietpi-software without args if data.args.is_empty() { continue; @@ -144,12 +144,12 @@ async fn management_handler( } }); loop { - match data_recv.recv().await.unwrap() { - None => { + match data_recv.recv().await { + Some(None) | None => { handle.abort(); break; } - Some(data) => { + Some(Some(data)) => { Command::new(data.cmd).spawn().unwrap(); } } @@ -174,12 +174,12 @@ async fn service_handler( } }); loop { - match data_recv.recv().await.unwrap() { - None => { + match data_recv.recv().await { + Some(None) | None => { handle.abort(); break; } - Some(data) => { + Some(Some(data)) => { Command::new("systemctl") .args([data.cmd, (&*data.args[0]).to_string()]) .spawn() @@ -221,11 +221,11 @@ async fn browser_handler( ))) .await; loop { - match data_recv.recv().await.unwrap() { - None => { + match data_recv.recv().await { + Some(None) | None => { break; } - Some(data) => match data.cmd.as_str() { + Some(Some(data)) => match data.cmd.as_str() { "cd" => { let _send = (*socket_send) .send(Message::text(SerJson::serialize_json(