From c037e2d2a1b29b785d8acc10fa0cb761afdb3fcf Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Thu, 24 Apr 2025 15:21:15 +0200 Subject: [PATCH] Fixed issue with weird tcp packets --- src/carla.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/carla.rs b/src/carla.rs index d8c9a8a..3537e7c 100644 --- a/src/carla.rs +++ b/src/carla.rs @@ -70,7 +70,6 @@ async fn register_tcp(args: Args) -> Result<()> { } async fn tcp_connection(stream: TcpStream, tx: Sender) -> Result<()> { - println!("Accepted new Carla TCP connection"); let mut buf = vec![0; 1024]; let mut stream = stream; @@ -78,7 +77,13 @@ async fn tcp_connection(stream: TcpStream, tx: Sender) -> Result<()> let bytes = stream.read(&mut buf).await?; let packet = &buf[0..bytes]; if bytes > 4 { - let (_, packet) = decode_udp(packet)?; + let len_bytes = [buf[0], buf[1], buf[2], buf[3]]; + let len = u32::from_be_bytes(len_bytes) as usize; + let packet = if len == bytes - 4 { + decode_udp(&packet[4..bytes])?.1 + } else { + decode_udp(packet)?.1 + }; tx.send(packet).await?; } }