Merge pull request #206 from izderadicka/yourip

Fill yourip in extended handshake
This commit is contained in:
Igor Katson 2024-08-21 19:33:38 +01:00 committed by GitHub
commit 1a1d07e5cb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 2 deletions

View file

@ -14,7 +14,7 @@ use librqbit_core::{
};
use parking_lot::RwLock;
use peer_binary_protocol::{
extended::{handshake::ExtendedHandshake, ExtendedMessage},
extended::{handshake::{ExtendedHandshake, YourIP}, ExtendedMessage},
serialize_piece_preamble, Handshake, Message, MessageOwned, PIECE_MESSAGE_DEFAULT_LEN,
};
use serde::{Deserialize, Serialize};
@ -245,7 +245,9 @@ impl<H: PeerConnectionHandler> PeerConnection<H> {
let supports_extended = handshake_supports_extended;
if supports_extended {
let your_ip = self.addr.ip();
let mut my_extended = ExtendedHandshake::new();
my_extended.yourip = Some(YourIP(your_ip));
self.handler
.update_my_extended_handshake(&mut my_extended)?;
let my_extended = Message::Extended(ExtendedMessage::Handshake(my_extended));

View file

@ -96,7 +96,10 @@ impl Serialize for YourIP {
let buf = ipv4.octets();
serializer.serialize_bytes(&buf)
}
IpAddr::V6(_) => todo!(),
IpAddr::V6(ipv6) => {
let buf = ipv6.octets();
serializer.serialize_bytes(&buf)
},
}
}
}