From e77fa730dd0860b2b383bb6254e07a40fb0640b2 Mon Sep 17 00:00:00 2001 From: soruh Date: Tue, 20 Jun 2023 13:58:23 +0200 Subject: [PATCH] switch packet buffer to smallvec --- Cargo.lock | 4 ++++ Cargo.toml | 1 + src/auth.rs | 8 ++++---- src/http.rs | 2 +- src/main.rs | 3 ++- src/packets.rs | 3 ++- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5065731..8b81662 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -216,6 +216,7 @@ dependencies = [ "once_cell", "serde", "serde_json", + "smallvec", "time", "tokio", "tokio-stream", @@ -1088,6 +1089,9 @@ name = "smallvec" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +dependencies = [ + "serde", +] [[package]] name = "socket2" diff --git a/Cargo.toml b/Cargo.toml index 8e93de1..e182591 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,6 +30,7 @@ zerocopy = "0.6.1" tokio-stream = { version = "0.1.14", features = ["sync"] } flate2 = { version = "1.0.26", optional = true } bytes = "1.4.0" +smallvec = { version = "1.10.0", features = ["serde", "const_generics"] } [build-dependencies] minify-js = { version = "0.5.6", optional = true } diff --git a/src/auth.rs b/src/auth.rs index f887a40..236e7ff 100644 --- a/src/auth.rs +++ b/src/auth.rs @@ -34,7 +34,7 @@ pub async fn dyn_ip_update( kind: PacketKind::DynIpUpdate.raw(), length: 8, }, - data: Vec::new(), + ..Default::default() }; packet.data.resize(packet.header.length as usize, 0); @@ -55,11 +55,11 @@ pub async fn dyn_ip_update( packet.recv_into(&mut reader).await?; let result = match packet.kind() { - PacketKind::DynIpUpdateResponse => Ok(<[u8; 4]>::try_from(packet.data) - .map_err(|err| { + PacketKind::DynIpUpdateResponse => Ok(<[u8; 4]>::try_from(packet.data.as_slice()) + .map_err(|_| { eyre!( "too little data for ip address. Need 4 bytes got {}", - err.len() + packet.data.len() ) })? .into()), diff --git a/src/http.rs b/src/http.rs index d0e36d7..bfc922e 100644 --- a/src/http.rs +++ b/src/http.rs @@ -212,7 +212,7 @@ pub async fn peer_query(server: &SocketAddr, number: u32) -> eyre::Result