pub struct UdpTracker { /* private fields */ }Expand description
UDP tracker client (BEP 15).
Implementations§
Source§impl UdpTracker
impl UdpTracker
Sourcepub fn with_timeout(self, timeout: Duration) -> Self
pub fn with_timeout(self, timeout: Duration) -> Self
Sets the timeout duration for UDP tracker requests.
Sourcepub fn build_connect_request(transaction_id: u32) -> [u8; 16]
pub fn build_connect_request(transaction_id: u32) -> [u8; 16]
Build a UDP connect request packet (BEP 15).
Sourcepub fn parse_connect_response(
data: &[u8],
expected_transaction_id: u32,
) -> Result<u64>
pub fn parse_connect_response( data: &[u8], expected_transaction_id: u32, ) -> Result<u64>
Parse a UDP connect response, returning the connection_id.
Sourcepub fn build_announce_request(
connection_id: u64,
transaction_id: u32,
req: &AnnounceRequest,
) -> Vec<u8> ⓘ
pub fn build_announce_request( connection_id: u64, transaction_id: u32, req: &AnnounceRequest, ) -> Vec<u8> ⓘ
Build a UDP announce request packet (BEP 15).
Sourcepub fn parse_announce_response(
data: &[u8],
expected_transaction_id: u32,
) -> Result<UdpAnnounceResponse>
pub fn parse_announce_response( data: &[u8], expected_transaction_id: u32, ) -> Result<UdpAnnounceResponse>
Parse a UDP announce response.
Sourcepub fn parse_announce_response_v6(
data: &[u8],
expected_transaction_id: u32,
) -> Result<UdpAnnounceResponse>
pub fn parse_announce_response_v6( data: &[u8], expected_transaction_id: u32, ) -> Result<UdpAnnounceResponse>
Parse a UDP announce response where the tracker address is IPv6.
Per BEP 15, the compact peer format matches the address family of the tracker endpoint: 18-byte entries (16 IP + 2 port) for IPv6 trackers.
Sourcepub async fn announce(
&self,
tracker_addr: &str,
req: &AnnounceRequest,
) -> Result<UdpAnnounceResponse>
pub async fn announce( &self, tracker_addr: &str, req: &AnnounceRequest, ) -> Result<UdpAnnounceResponse>
Perform a full UDP announce (connect + announce).
Sourcepub fn build_scrape_request(
connection_id: u64,
transaction_id: u32,
info_hashes: &[Id20],
) -> Vec<u8> ⓘ
pub fn build_scrape_request( connection_id: u64, transaction_id: u32, info_hashes: &[Id20], ) -> Vec<u8> ⓘ
Build a UDP scrape request packet (BEP 15).
Format: connection_id(8) + action(4, value=2) + transaction_id(4) + info_hash(20)*N
Sourcepub fn parse_scrape_response(
data: &[u8],
expected_transaction_id: u32,
) -> Result<UdpScrapeResponse>
pub fn parse_scrape_response( data: &[u8], expected_transaction_id: u32, ) -> Result<UdpScrapeResponse>
Parse a UDP scrape response.
Format: action(4) + transaction_id(4) + [seeders(4) + completed(4) + leechers(4)]*N
Trait Implementations§
Source§impl Clone for UdpTracker
impl Clone for UdpTracker
Source§fn clone(&self) -> UdpTracker
fn clone(&self) -> UdpTracker
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for UdpTracker
impl RefUnwindSafe for UdpTracker
impl Send for UdpTracker
impl Sync for UdpTracker
impl Unpin for UdpTracker
impl UnsafeUnpin for UdpTracker
impl UnwindSafe for UdpTracker
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more