use embassy_net::tcp::TcpSocket; use sachy_fmt::{error, info}; use crate::{constants::HOST_PORT, updates::UpdateConnection}; pub async fn rpc_loop<'device>(tcp: &mut TcpSocket<'device>) { loop { UpdateConnection::disconnect(); if tcp.accept(HOST_PORT).await.is_err() { continue; } match super::crypto::initialise(tcp).await { Ok(session) => { info!("Connected!"); UpdateConnection::connect(); session.run(tcp).await; UpdateConnection::get_receiver().clear(); info!("DISCONNECT"); } Err(e) => error!("Session init failure: {}", e), } tcp.abort(); tcp.flush().await.ok(); } }