commit 0d86c641344f5ddbdbdff08bfb3f9f7432c82ad1
parent ebf60e64ad881fedd27fb2a6b37dd8ec06d8b1d3
Author: Daniel Barlow <dan@telent.net>
Date: Sat, 24 Jan 2026 22:20:49 +0000
replace read_all with socket.read_exact
Diffstat:
1 file changed, 3 insertions(+), 26 deletions(-)
diff --git a/ecu-esp32/src/wifi.rs b/ecu-esp32/src/wifi.rs
@@ -36,6 +36,7 @@ use esp_radio::{
};
use embassy_net::Stack;
+use embedded_io_async::Read;
use log::{warn, info};
@@ -211,28 +212,6 @@ async fn net_task(mut runner: Runner<'static, WifiDevice<'static>>) {
runner.run().await
}
-async fn read_all(socket: &mut embassy_net::tcp::TcpSocket<'_>,
- buf: &mut [u8],
- len: usize) -> usize {
- let mut n = 0;
- while n < len {
- match socket.read(&mut buf[n..len]).await {
- Ok(0) => {
- warn!("read EOF");
- break;
- },
- Ok(count) => {
- n = n + count;
- }
- Err(e) => {
- warn!("read err {:?}", e);
- return 0; // ew
- }
- }
- }
- n
-}
-
fn register_session_key(key : &[u8]) {
info!("got session key{:?}", key);
@@ -257,9 +236,7 @@ async fn run_tcp_handler(stack : Stack<'_>,
info!("Received connection from {:?}", socket.remote_endpoint());
- let n = read_all(&mut socket, &mut buf, 4).await;
-
- if n == 4 {
+ if let Ok(_) = socket.read_exact(&mut buf[0..4]).await {
info!("got a thing");
match &buf[0..4] {
b"ROM0" => {
@@ -268,7 +245,7 @@ async fn run_tcp_handler(stack : Stack<'_>,
},
b"KEY0" => {
info!("sessionkey");
- if read_all(&mut socket, &mut buf, 96).await == 64 {
+ if let Ok(_) = socket.read_exact(&mut buf).await {
let (_sig, key) = buf.split_at(64);
register_session_key(&key);
}