Skip to content

Commit fd926bb

Browse files
committed
update socket2 to v0.4
- Domain uses IPV4 and IPV6 - Type uses DGRAM - Protocol uses UDP and TCP - into_udp_socket uses Into::into fixes #456
1 parent 46a51c8 commit fd926bb

File tree

8 files changed

+30
-34
lines changed

8 files changed

+30
-34
lines changed

Cargo.lock

Lines changed: 19 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/shadowsocks-service/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ rustls-native-certs = { version = "0.5", optional = true }
8989
async-trait = "0.1"
9090
mio = { version = "0.7", optional = true }
9191

92-
socket2 = { version = "0.3", features = ["reuseport"] }
92+
socket2 = { version = "0.4", features = ["all"] }
9393
libc = "0.2"
9494

9595
http = { version = "0.2", optional = true }

crates/shadowsocks-service/src/local/redir/tcprelay/sys/unix/bsd.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ impl TcpStreamRedirExt for TcpStream {
6464
let peer_addr = self.peer_addr()?;
6565
let bind_addr = self.local_addr()?;
6666

67-
PF.natlook(&bind_addr, &peer_addr, Protocol::tcp())
67+
PF.natlook(&bind_addr, &peer_addr, Protocol::TCP)
6868
}
6969
#[cfg(any(
7070
target_os = "freebsd",

crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/bsd.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,7 @@ impl UdpRedirSocket {
4949
));
5050
}
5151

52-
let domain = match addr {
53-
SocketAddr::V4(..) => Domain::ipv4(),
54-
SocketAddr::V6(..) => Domain::ipv6(),
55-
};
56-
let socket = Socket::new(domain, Type::dgram(), Some(Protocol::udp()))?;
52+
let socket = Socket::new(Domain::for_address(addr), Type::DGRAM, Some(Protocol::UDP))?;
5753
set_socket_before_bind(&addr, &socket)?;
5854

5955
socket.set_nonblocking(true)?;
@@ -64,7 +60,7 @@ impl UdpRedirSocket {
6460

6561
socket.bind(&SockAddr::from(addr))?;
6662

67-
let io = AsyncFd::new(socket.into_udp_socket())?;
63+
let io = AsyncFd::new(socket.into())?;
6864
Ok(UdpRedirSocket { io })
6965
}
7066

crates/shadowsocks-service/src/local/redir/udprelay/sys/unix/linux.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,7 @@ impl UdpRedirSocket {
6262
));
6363
}
6464

65-
let domain = match addr {
66-
SocketAddr::V4(..) => Domain::ipv4(),
67-
SocketAddr::V6(..) => Domain::ipv6(),
68-
};
69-
let socket = Socket::new(domain, Type::dgram(), Some(Protocol::udp()))?;
65+
let socket = Socket::new(Domain::for_address(addr), Type::DGRAM, Some(Protocol::UDP))?;
7066
set_socket_before_bind(&addr, &socket)?;
7167

7268
socket.set_nonblocking(true)?;
@@ -77,7 +73,7 @@ impl UdpRedirSocket {
7773

7874
socket.bind(&SockAddr::from(addr))?;
7975

80-
let io = AsyncFd::new(socket.into_udp_socket())?;
76+
let io = AsyncFd::new(socket.into())?;
8177
Ok(UdpRedirSocket { io })
8278
}
8379

crates/shadowsocks/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ futures = "0.3"
5050
async-trait = "0.1"
5151

5252
mio = "0.7"
53-
socket2 = "0.3"
53+
socket2 = "0.4"
5454
tokio = { version = "1", features = ["io-util", "macros", "net", "parking_lot", "process", "rt", "sync"] }
5555

5656
trust-dns-resolver = { version = "0.20", optional = true }

crates/shadowsocks/src/relay/sys/unix/mod.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -318,10 +318,7 @@ pub async fn create_inbound_udp_socket(addr: &SocketAddr) -> io::Result<UdpSocke
318318
if !set_dual_stack {
319319
UdpSocket::bind(addr).await
320320
} else {
321-
let socket = match *addr {
322-
SocketAddr::V4(..) => Socket::new(Domain::ipv4(), Type::dgram(), Some(Protocol::udp()))?,
323-
SocketAddr::V6(..) => Socket::new(Domain::ipv6(), Type::dgram(), Some(Protocol::udp()))?,
324-
};
321+
let socket = Socket::new(Domain::for_address(*addr), Type::DGRAM, Some(Protocol::UDP))?;
325322

326323
if let Err(err) = socket.set_only_v6(false) {
327324
warn!("failed to set IPV6_V6ONLY: false for listener, error: {}", err);
@@ -352,6 +349,6 @@ pub async fn create_inbound_udp_socket(addr: &SocketAddr) -> io::Result<UdpSocke
352349

353350
// UdpSocket::from_std requires socket to be non-blocked
354351
socket.set_nonblocking(true)?;
355-
UdpSocket::from_std(socket.into_udp_socket())
352+
UdpSocket::from_std(socket.into())
356353
}
357354
}

crates/shadowsocks/src/relay/sys/windows/mod.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,7 @@ pub async fn create_inbound_udp_socket(addr: &SocketAddr) -> io::Result<UdpSocke
7373
let socket = if !set_dual_stack {
7474
UdpSocket::bind(addr).await?
7575
} else {
76-
let socket = match *addr {
77-
SocketAddr::V4(..) => Socket::new(Domain::ipv4(), Type::dgram(), Some(Protocol::udp()))?,
78-
SocketAddr::V6(..) => Socket::new(Domain::ipv6(), Type::dgram(), Some(Protocol::udp()))?,
79-
};
76+
let socket = Socket::new(Domain::for_address(*addr), Type::DGRAM, Some(Protocol::UDP))?;
8077

8178
if let Err(err) = socket.set_only_v6(false) {
8279
warn!("failed to set IPV6_V6ONLY: false for listener, error: {}", err);
@@ -107,7 +104,7 @@ pub async fn create_inbound_udp_socket(addr: &SocketAddr) -> io::Result<UdpSocke
107104

108105
// UdpSocket::from_std requires socket to be non-blocked
109106
socket.set_nonblocking(true)?;
110-
UdpSocket::from_std(socket.into_udp_socket())?
107+
UdpSocket::from_std(socket.into())?
111108
};
112109

113110
disable_connection_reset(&socket)?;

0 commit comments

Comments
 (0)