feat: use cursors instead of byte arrays
This commit is contained in:
+6
-4
@@ -1,9 +1,10 @@
|
||||
mod config;
|
||||
mod dns;
|
||||
mod ext;
|
||||
mod logging;
|
||||
mod macros;
|
||||
|
||||
use std::net::SocketAddr;
|
||||
use std::{io::Cursor, net::SocketAddr};
|
||||
|
||||
use anyhow::Result;
|
||||
use dotenv::dotenv;
|
||||
@@ -24,7 +25,8 @@ async fn main() -> Result<()> {
|
||||
|
||||
loop {
|
||||
let (size, addr) = sock.recv_from(&mut buffer).await?;
|
||||
let result = handle_datagram(&config, &sock, &addr, &buffer[..size]).await;
|
||||
let mut cursor = Cursor::new(&buffer[..size]);
|
||||
let result = handle_datagram(&config, &sock, &addr, &mut cursor).await;
|
||||
if let Err(err) = result {
|
||||
tracing::error!("failed to handle datagram: {err}");
|
||||
}
|
||||
@@ -35,9 +37,9 @@ async fn handle_datagram(
|
||||
config: &config::ConfigData,
|
||||
sock: &UdpSocket,
|
||||
addr: &SocketAddr,
|
||||
datagram: &[u8],
|
||||
cursor: &mut Cursor<&[u8]>,
|
||||
) -> Result<()> {
|
||||
let message = Message::parse(datagram)?;
|
||||
let message = Message::parse(cursor)?;
|
||||
let span = tracing::span!(
|
||||
Level::INFO,
|
||||
"handle_datagram",
|
||||
|
||||
Reference in New Issue
Block a user