From bc5cd90371166ba7605a3ab8d64241a26ef3948a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Wed, 12 Aug 2020 04:26:09 +0200 Subject: [PATCH] aquatic http: use serde_bencode for deserialization bendy seems not to manage lack of trailing newline --- Cargo.lock | 11 +++++++++++ aquatic_http_protocol/Cargo.toml | 3 ++- aquatic_http_protocol/src/response.rs | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 828e0a6..57bf952 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -117,6 +117,7 @@ dependencies = [ "quickcheck_macros", "rand", "serde", + "serde_bencode", "smartstring", "urlencoding", ] @@ -1579,6 +1580,16 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde_bencode" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "008b9167b9bfe7b1a0bc0fd30ffd4447c1525872c746b8540e08d88ab6dbcc13" +dependencies = [ + "serde", + "serde_bytes", +] + [[package]] name = "serde_bytes" version = "0.11.5" diff --git a/aquatic_http_protocol/Cargo.toml b/aquatic_http_protocol/Cargo.toml index c4c61b2..bc6ad7d 100644 --- a/aquatic_http_protocol/Cargo.toml +++ b/aquatic_http_protocol/Cargo.toml @@ -25,7 +25,6 @@ harness = false [dependencies] anyhow = "1" -bendy = { version = "0.3", features = ["std", "serde"] } hashbrown = "0.8" hex = { version = "0.4", default-features = false } httparse = "1" @@ -34,10 +33,12 @@ log = "0.4" memchr = "2" rand = { version = "0.7", features = ["small_rng"] } serde = { version = "1", features = ["derive"] } +serde_bencode = "0.2" smartstring = "0.2" urlencoding = "1" [dev-dependencies] +bendy = { version = "0.3", features = ["std", "serde"] } criterion = "0.3" quickcheck = "0.9" quickcheck_macros = "0.9" \ No newline at end of file diff --git a/aquatic_http_protocol/src/response.rs b/aquatic_http_protocol/src/response.rs index a75801a..7d3031e 100644 --- a/aquatic_http_protocol/src/response.rs +++ b/aquatic_http_protocol/src/response.rs @@ -184,8 +184,8 @@ impl Response { Response::Scrape(r) => r.write(output), } } - pub fn from_bytes(bytes: &[u8]) -> Result { - ::bendy::serde::de::from_bytes(bytes) + pub fn from_bytes(bytes: &[u8]) -> Result { + ::serde_bencode::from_bytes(bytes) } }