diff --git a/crates/librqbit/src/peer_connection.rs b/crates/librqbit/src/peer_connection.rs index 8b9bf88..cd57169 100644 --- a/crates/librqbit/src/peer_connection.rs +++ b/crates/librqbit/src/peer_connection.rs @@ -283,6 +283,12 @@ impl PeerConnection { trace!("sent bitfield"); } + let len = MessageOwned::Unchoke.serialize(&mut write_buf, &Default::default)?; + with_timeout(rwtimeout, write_half.write_all(&write_buf[..len])) + .await + .context("error writing unchoke")?; + trace!("sent unchoke"); + let mut broadcast_closed = false; loop { @@ -378,7 +384,6 @@ impl PeerConnection { with_timeout(rwtimeout, write_half.write_all(&write_buf[..len])) .await .context("error writing the message to peer")?; - write_buf.clear(); if let Some(uploaded_add) = uploaded_add { self.handler.on_uploaded_bytes(uploaded_add) diff --git a/crates/librqbit/src/torrent_state/live/mod.rs b/crates/librqbit/src/torrent_state/live/mod.rs index cad3314..ccc7a97 100644 --- a/crates/librqbit/src/torrent_state/live/mod.rs +++ b/crates/librqbit/src/torrent_state/live/mod.rs @@ -892,8 +892,6 @@ impl<'a> PeerConnectionHandler for &'a PeerHandler { fn on_handshake(&self, handshake: Handshake) -> anyhow::Result<()> { self.state.set_peer_live(self.addr, handshake); - self.tx - .send(WriterRequest::Message(MessageOwned::Unchoke))?; Ok(()) }