diff --git a/TODO.md b/TODO.md index 981ca23..ea1b5cd 100644 --- a/TODO.md +++ b/TODO.md @@ -51,8 +51,7 @@ * still maybe too few answers received with aquatic_ws * why does wt-tracker freak out when numwant is set to offers.len()? lots of broken pipe errors etc. likely because it sends offers when it is set. -* wt-tracker source: event needs to be undefined in answer for it to register - as an answer +* wt-tracker: why lots of responses with no (new) requests? ## aquatic_udp * handle errors similarily to aquatic_ws, including errors in socket workers diff --git a/aquatic_ws/src/lib/handler.rs b/aquatic_ws/src/lib/handler.rs index 117c9fe..f6f037b 100644 --- a/aquatic_ws/src/lib/handler.rs +++ b/aquatic_ws/src/lib/handler.rs @@ -114,7 +114,7 @@ pub fn handle_announce_requests( // Insert/update/remove peer who sent this request { let peer_status = PeerStatus::from_event_and_bytes_left( - request.event, + request.event.unwrap_or_default(), request.bytes_left ); diff --git a/aquatic_ws_load_test/src/network.rs b/aquatic_ws_load_test/src/network.rs index f3ba6c0..ef406ab 100644 --- a/aquatic_ws_load_test/src/network.rs +++ b/aquatic_ws_load_test/src/network.rs @@ -196,7 +196,8 @@ impl Connection { if let Some((peer_id, offer_id)) = self.send_answer { r.to_peer_id = Some(peer_id); r.offer_id = Some(offer_id); - r.answer = Some(JsonValue(::serde_json::json!({"abc": "def"}))); + r.answer = Some(JsonValue(::serde_json::json!({"sdp": "def"}))); + r.event = None; r.offers = None; } diff --git a/aquatic_ws_load_test/src/utils.rs b/aquatic_ws_load_test/src/utils.rs index f325a33..047f6b5 100644 --- a/aquatic_ws_load_test/src/utils.rs +++ b/aquatic_ws_load_test/src/utils.rs @@ -83,7 +83,7 @@ fn create_announce_request( info_hash: state.info_hashes[info_hash_index], peer_id, bytes_left: Some(bytes_left), - event, + event: Some(event), numwant: Some(offers.len()), offers: Some(offers), answer: None, diff --git a/aquatic_ws_protocol/src/lib.rs b/aquatic_ws_protocol/src/lib.rs index 839fdc6..92552db 100644 --- a/aquatic_ws_protocol/src/lib.rs +++ b/aquatic_ws_protocol/src/lib.rs @@ -108,8 +108,8 @@ pub struct AnnounceRequest { #[serde(rename = "left")] pub bytes_left: Option, /// Can be empty. Then, default is "update" - #[serde(default)] - pub event: AnnounceEvent, + #[serde(skip_serializing_if = "Option::is_none")] + pub event: Option, /// Only when this is an array offers are sent to random peers /// Length of this is number of peers wanted?