diff --git a/rust/src/bittorrent_dht/logger.rs b/rust/src/bittorrent_dht/logger.rs index 50a1a26087..283f103323 100644 --- a/rust/src/bittorrent_dht/logger.rs +++ b/rust/src/bittorrent_dht/logger.rs @@ -65,13 +65,13 @@ fn log_bittorrent_dht( js.open_object("request")?; js.set_hex("id", &request.id)?; if let Some(target) = &request.target { - js.set_string("target", target)?; + js.set_hex("target", target)?; } if let Some(info_hash) = &request.info_hash { js.set_hex("info_hash", info_hash)?; } if let Some(token) = &request.token { - js.set_string("token", token)?; + js.set_hex("token", token)?; } if let Some(implied_port) = request.implied_port { js.set_uint("implied_port", u64::from(implied_port))?; diff --git a/rust/src/bittorrent_dht/parser.rs b/rust/src/bittorrent_dht/parser.rs index b72c5aee9a..cdb0db45dc 100644 --- a/rust/src/bittorrent_dht/parser.rs +++ b/rust/src/bittorrent_dht/parser.rs @@ -32,11 +32,11 @@ pub struct BitTorrentDHTRequest { /// q = * - 20 byte string, sender's node ID in network byte order pub id: Vec, /// q = find_node - target node ID - pub target: Option, + pub target: Option>, /// q = get_peers/announce_peer - 20-byte info hash of target torrent pub info_hash: Option>, /// q = announce_peer - token key received from previous get_peers query - pub token: Option, + pub token: Option>, /// q = announce_peer - 0 or 1, if 1 ignore provided port and /// use source port of UDP packet pub implied_port: Option, @@ -125,9 +125,10 @@ impl FromBencode for BitTorrentDHTRequest { id = value.try_into_bytes().context("id").map(Some)?; } (b"target", value) => { - target = String::decode_bencode_object(value) + target = value + .try_into_bytes() .context("target") - .map(Some)?; + .map(|v| Some(v.to_vec()))?; } (b"info_hash", value) => { info_hash = value @@ -136,9 +137,10 @@ impl FromBencode for BitTorrentDHTRequest { .map(|v| Some(v.to_vec()))?; } (b"token", value) => { - token = String::decode_bencode_object(value) + token = value + .try_into_bytes() .context("token") - .map(Some)?; + .map(|v| Some(v.to_vec()))?; } (b"implied_port", value) => { implied_port = u8::decode_bencode_object(value)