Merge pull request #364 from av-gal/private-no-pex
Do not exchange peers or torrent metadata in private swarms/
This commit is contained in:
commit
bde5a2e634
1 changed files with 20 additions and 4 deletions
|
|
@ -990,11 +990,27 @@ impl PeerConnectionHandler for &PeerHandler {
|
||||||
Message::Extended(ExtendedMessage::UtMetadata(UtMetadata::Request(
|
Message::Extended(ExtendedMessage::UtMetadata(UtMetadata::Request(
|
||||||
metadata_piece_id,
|
metadata_piece_id,
|
||||||
))) => {
|
))) => {
|
||||||
self.send_metadata_piece(metadata_piece_id)
|
if self.state.metadata.info.private {
|
||||||
.with_context(|| format!("error sending metadata piece {metadata_piece_id}"))?;
|
warn!(
|
||||||
|
"recieved noncompliant ut_metadata message from {}, ignoring",
|
||||||
|
self.addr
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
self.send_metadata_piece(metadata_piece_id)
|
||||||
|
.with_context(|| {
|
||||||
|
format!("error sending metadata piece {metadata_piece_id}")
|
||||||
|
})?;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Message::Extended(ExtendedMessage::UtPex(pex)) => {
|
Message::Extended(ExtendedMessage::UtPex(pex)) => {
|
||||||
self.on_pex_message(pex);
|
if self.state.metadata.info.private {
|
||||||
|
warn!(
|
||||||
|
"recieved noncompliant PEX message from {}, ignoring",
|
||||||
|
self.addr
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
self.on_pex_message(pex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
message => {
|
message => {
|
||||||
warn!("received unsupported message {:?}, ignoring", message);
|
warn!("received unsupported message {:?}, ignoring", message);
|
||||||
|
|
@ -1032,7 +1048,7 @@ impl PeerConnectionHandler for &PeerHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_extended_handshake(&self, hs: &ExtendedHandshake<ByteBuf>) -> anyhow::Result<()> {
|
fn on_extended_handshake(&self, hs: &ExtendedHandshake<ByteBuf>) -> anyhow::Result<()> {
|
||||||
if let Some(_peer_pex_msg_id) = hs.ut_pex() {
|
if !self.state.metadata.info.private && hs.ut_pex().is_some() {
|
||||||
self.state.clone().spawn(
|
self.state.clone().spawn(
|
||||||
error_span!(
|
error_span!(
|
||||||
parent: self.state.shared.span.clone(),
|
parent: self.state.shared.span.clone(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue