Skip to content

Commit 795d568

Browse files
utils: rename ip.rs -> net.rs
1 parent e2485dd commit 795d568

12 files changed

Lines changed: 38 additions & 35 deletions

File tree

mtorrent-core/src/pwp/message.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use bitvec::prelude::*;
22
use bytes::{Buf, BufMut};
33
use derive_more::Display;
4-
use mtorrent_utils::{benc, ip};
4+
use mtorrent_utils::{benc, net};
55
use std::collections::{BTreeMap, HashMap, HashSet};
66
use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr};
77
use std::{fmt, io};
@@ -684,16 +684,16 @@ impl PeerExchangeData {
684684
let mut dropped = HashSet::new();
685685

686686
if let Some(ByteString(s)) = root.remove(Self::KEY_ADDED_V4) {
687-
added.extend(ip::SocketAddrV4BytesIter(&s).map(SocketAddr::V4));
687+
added.extend(net::SocketAddrV4BytesIter(&s).map(SocketAddr::V4));
688688
}
689689
if let Some(ByteString(s)) = root.remove(Self::KEY_ADDED_V6) {
690-
added.extend(ip::SocketAddrV6BytesIter(&s).map(SocketAddr::V6));
690+
added.extend(net::SocketAddrV6BytesIter(&s).map(SocketAddr::V6));
691691
}
692692
if let Some(ByteString(s)) = root.remove(Self::KEY_DROPPED_V4) {
693-
dropped.extend(ip::SocketAddrV4BytesIter(&s).map(SocketAddr::V4));
693+
dropped.extend(net::SocketAddrV4BytesIter(&s).map(SocketAddr::V4));
694694
}
695695
if let Some(ByteString(s)) = root.remove(Self::KEY_DROPPED_V6) {
696-
dropped.extend(ip::SocketAddrV6BytesIter(&s).map(SocketAddr::V6));
696+
dropped.extend(net::SocketAddrV6BytesIter(&s).map(SocketAddr::V6));
697697
}
698698
Some(PeerExchangeData { added, dropped })
699699
}

mtorrent-core/src/trackers/http.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use local_async_utils::prelude::*;
2-
use mtorrent_utils::{benc, ip};
2+
use mtorrent_utils::{benc, net};
33
use reqwest::{ClientBuilder, Url};
44
use std::collections::{BTreeMap, HashMap};
55
use std::net::{IpAddr, SocketAddr};
@@ -355,15 +355,15 @@ impl AnnounceResponseContent {
355355
let mut all_peers = Vec::new();
356356
match peers {
357357
Some(benc::Element::ByteString(data)) => {
358-
all_peers.extend(ip::SocketAddrV4BytesIter(data).map(SocketAddr::V4));
358+
all_peers.extend(net::SocketAddrV4BytesIter(data).map(SocketAddr::V4));
359359
}
360360
Some(benc::Element::List(list)) => {
361361
all_peers.extend(dictionary_peers(list));
362362
}
363363
_ => (),
364364
}
365365
if let Some(benc::Element::ByteString(data)) = ipv6_peers {
366-
all_peers.extend(ip::SocketAddrV6BytesIter(data).map(SocketAddr::V6))
366+
all_peers.extend(net::SocketAddrV6BytesIter(data).map(SocketAddr::V6))
367367
}
368368
Some(all_peers)
369369
}

mtorrent-core/src/trackers/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ mod url;
44

55
use futures_util::TryFutureExt;
66
use local_async_utils::sec;
7-
use mtorrent_utils::ip;
7+
use mtorrent_utils::net;
88
use mtorrent_utils::peer_id::PeerId;
99
use std::collections::HashMap;
1010
use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr};
1111
use std::time::Duration;
1212
use std::{io, iter};
13-
use tokio::net::{self, UdpSocket};
13+
use tokio::net::{UdpSocket, lookup_host};
1414
use tokio::sync::{mpsc, oneshot};
1515
use tokio::task;
1616
use tokio_util::sync::CancellationToken;
@@ -184,8 +184,8 @@ impl Manager {
184184
}
185185

186186
let interface = self.config.bind_interface.as_deref();
187-
let local_ipv4 = ip::get_bind_addr_v4(interface);
188-
let local_ipv6 = ip::get_bind_addr_v6(interface);
187+
let local_ipv4 = net::get_bind_addr_v4(interface);
188+
let local_ipv6 = net::get_bind_addr_v6(interface);
189189
let http_client = http::TrackerClient::new(local_ipv4.into(), interface)
190190
.inspect_err(|e| log::error!("Failed to create HTTP tracker client: {e}"))
191191
.ok();
@@ -343,13 +343,13 @@ async fn new_udp_client(
343343
) -> io::Result<UdpSocket> {
344344
let socket = UdpSocket::bind(bind_addr).await?;
345345
if let Some(iface) = interface {
346-
ip::bind_to_interface(&socket, iface)?;
346+
net::bind_to_interface(&socket, iface)?;
347347
}
348348
socket.connect(&remote_addr).await?;
349349
Ok(socket)
350350
}
351351

352-
for tracker_addr in net::lookup_host(tracker_addr_str).await? {
352+
for tracker_addr in lookup_host(tracker_addr_str).await? {
353353
let local_ip = match &tracker_addr {
354354
SocketAddr::V4(_) => local_ipv4.into(),
355355
SocketAddr::V6(_) => local_ipv6.into(),

mtorrent-core/src/trackers/udp.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use bytes::{Buf, BufMut};
22
use derive_more::Display;
33
use local_async_utils::prelude::*;
4-
use mtorrent_utils::ip;
4+
use mtorrent_utils::net;
55
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
66
use std::str::Utf8Error;
77
use std::{io, str};
@@ -366,8 +366,8 @@ impl TryFrom<(&[u8], &IpAddr)> for AnnounceResponse {
366366
let leechers = src.get_u32();
367367
let seeders = src.get_u32();
368368
let ips: Vec<_> = match tracker_ip {
369-
IpAddr::V4(_) => ip::SocketAddrV4BytesIter(src).map(SocketAddr::V4).collect(),
370-
IpAddr::V6(_) => ip::SocketAddrV6BytesIter(src).map(SocketAddr::V6).collect(),
369+
IpAddr::V4(_) => net::SocketAddrV4BytesIter(src).map(SocketAddr::V4).collect(),
370+
IpAddr::V6(_) => net::SocketAddrV6BytesIter(src).map(SocketAddr::V6).collect(),
371371
};
372372
Ok(AnnounceResponse {
373373
interval,

mtorrent-dht/src/msgs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::error::Error;
22
use super::u160::U160;
33
use derive_more::derive::From;
4-
use mtorrent_utils::{benc, ip};
4+
use mtorrent_utils::{benc, net};
55
use std::collections::BTreeMap;
66
use std::net::{Ipv4Addr, SocketAddrV4};
77
use std::{fmt, iter};
@@ -557,7 +557,7 @@ impl TryFrom<ResponseMsg> for GetPeersResponse {
557557
benc::Element::ByteString(bytes) => Some(bytes.as_slice()),
558558
_ => None,
559559
})
560-
.flat_map(ip::SocketAddrV4BytesIter)
560+
.flat_map(net::SocketAddrV4BytesIter)
561561
.collect::<Vec<_>>(),
562562
Some(_) => return Err(Error::ParseError("values not a list".into())),
563563
None => Vec::new(),

mtorrent-utils/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub mod connect_throttle;
1414
pub mod fifo_set;
1515

1616
/// Local IP address discovery and socket helpers.
17-
pub mod ip;
17+
pub mod net;
1818

1919
/// Single-value watch channel for `!Send` types.
2020
pub mod local_watch;
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ fn get_adapter_addrs<'a>(
4646
.flat_map(ipconfig::Adapter::ip_addresses)
4747
}
4848

49+
/// Get the local IP address to bind to, based on the specified network interface (if any).
4950
pub fn get_bind_addr_v4(interface: Option<&str>) -> Ipv4Addr {
5051
let Some(iface) = interface else {
5152
return Ipv4Addr::UNSPECIFIED;
@@ -74,6 +75,7 @@ pub fn get_bind_addr_v4(interface: Option<&str>) -> Ipv4Addr {
7475
Ipv4Addr::UNSPECIFIED
7576
}
7677

78+
/// Get the local IP address to bind to, based on the specified network interface (if any).
7779
pub fn get_bind_addr_v6(interface: Option<&str>) -> Ipv6Addr {
7880
let Some(iface) = interface else {
7981
return Ipv6Addr::UNSPECIFIED;
@@ -121,6 +123,7 @@ pub fn set_so_rcvbuf_internal<'s>(socket: impl Into<SockRef<'s>>, value: usize,
121123
}
122124
}
123125

126+
/// Bind a socket to a specific network interface. Does nothing on Windows.
124127
#[cfg(target_os = "windows")]
125128
pub fn bind_to_interface<'s>(_socket: impl Into<SockRef<'s>>, _interface: &str) -> io::Result<()> {
126129
// not supported on Windows
@@ -177,15 +180,15 @@ pub fn bind_to_interface<'s>(socket: impl Into<SockRef<'s>>, interface: &str) ->
177180
#[macro_export]
178181
macro_rules! set_so_sndbuf {
179182
($sock:expr, $size:expr) => {{
180-
$crate::ip::set_so_sndbuf_internal($sock, $size, std::module_path!());
183+
$crate::net::set_so_sndbuf_internal($sock, $size, std::module_path!());
181184
}};
182185
}
183186

184187
/// Set SO_RCVBUF on a socket.
185188
#[macro_export]
186189
macro_rules! set_so_rcvbuf {
187190
($sock:expr, $size:expr) => {{
188-
$crate::ip::set_so_rcvbuf_internal($sock, $size, std::module_path!());
191+
$crate::net::set_so_rcvbuf_internal($sock, $size, std::module_path!());
189192
}};
190193
}
191194

mtorrent-utils/src/upnp.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ impl Drop for PortOpener {
108108
#[cfg(test)]
109109
mod tests {
110110
use super::*;
111-
use crate::ip;
111+
use crate::net;
112112
use log::Level;
113113
use std::net::SocketAddrV4;
114114
use tokio::time;
@@ -118,7 +118,7 @@ mod tests {
118118
async fn test_async_port_opener() {
119119
simple_logger::init_with_level(Level::Debug).unwrap();
120120

121-
let local_ip = ip::get_local_addr().unwrap();
121+
let local_ip = net::get_local_addr().unwrap();
122122
let local_internal_ip = SocketAddrV4::new(local_ip, 23015);
123123
let port_opener = PortOpener::new(local_internal_ip.into(), PortMappingProtocol::TCP, None)
124124
.await

mtorrent/src/app/dht.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use mtorrent_dht as dht;
2-
use mtorrent_utils::{info_stopwatch, ip, upnp, worker};
2+
use mtorrent_utils::{info_stopwatch, net, upnp, worker};
33
use std::io;
44
use std::net::{SocketAddr, SocketAddrV4};
55
use std::path::PathBuf;
@@ -55,7 +55,7 @@ pub fn launch_dht_node_runtime(cfg: Config) -> io::Result<(worker::rt::Handle, d
5555
}
5656

5757
async fn start_upnp(local_port: u16) -> io::Result<()> {
58-
let local_addr = ip::get_local_addr()?;
58+
let local_addr = net::get_local_addr()?;
5959

6060
// try create a port mapping with the same port number
6161
let port_opener = upnp::PortOpener::new(
@@ -92,7 +92,7 @@ async fn dht_main(
9292
let _sw = info_stopwatch!("DHT");
9393

9494
let socket = match UdpSocket::bind(SocketAddrV4::new(
95-
ip::get_bind_addr_v4(bind_interface.as_deref()),
95+
net::get_bind_addr_v4(bind_interface.as_deref()),
9696
local_port,
9797
))
9898
.await
@@ -102,7 +102,7 @@ async fn dht_main(
102102
};
103103

104104
if let Some(interface) = bind_interface
105-
&& let Err(e) = ip::bind_to_interface(&socket, &interface)
105+
&& let Err(e) = net::bind_to_interface(&socket, &interface)
106106
{
107107
log::error!("Failed to bind DHT UDP socket to interface {interface}: {e}");
108108
return;

mtorrent/src/app/main.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::utils::{listener, startup};
33
use mtorrent_core::{input, pwp, trackers};
44
use mtorrent_dht as dht;
55
use mtorrent_utils::peer_id::PeerId;
6-
use mtorrent_utils::{info_stopwatch, ip, upnp};
6+
use mtorrent_utils::{info_stopwatch, net, upnp};
77
use std::borrow::Borrow;
88
use std::io;
99
use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr};
@@ -101,15 +101,15 @@ pub async fn single_torrent(
101101
}
102102
let ctx: &Context = ctx.borrow();
103103

104-
let listener_port = cfg.pwp_port.unwrap_or_else(|| ip::port_from_hash(&metainfo_uri.as_ref()));
105-
let pwp_local_addr_v4 = ip::get_bind_addr_v4(cfg.bind_interface.as_deref());
106-
let pwp_local_addr_v6 = ip::get_bind_addr_v6(cfg.bind_interface.as_deref());
104+
let listener_port = cfg.pwp_port.unwrap_or_else(|| net::port_from_hash(&metainfo_uri.as_ref()));
105+
let pwp_local_addr_v4 = net::get_bind_addr_v4(cfg.bind_interface.as_deref());
106+
let pwp_local_addr_v6 = net::get_bind_addr_v6(cfg.bind_interface.as_deref());
107107

108108
// create port mappings and get external port to send correct listening port to trackers and
109109
// peers later
110110
let external_pwp_port = if cfg.use_upnp {
111111
let _g = ctx.pwp_runtime.enter();
112-
let internal_addr = (ip::get_local_addr()?, listener_port).into();
112+
let internal_addr = (net::get_local_addr()?, listener_port).into();
113113
let (_public_pwp_addr, public_utp_addr) = join!(
114114
start_upnp(internal_addr, cfg.pwp_port, upnp::PortMappingProtocol::TCP),
115115
start_upnp(internal_addr, cfg.pwp_port, upnp::PortMappingProtocol::UDP),

0 commit comments

Comments
 (0)