diff --git a/crates/shadowsocks-service/src/local/net/udp/association.rs b/crates/shadowsocks-service/src/local/net/udp/association.rs index 2eac6fd2..7d9d60be 100644 --- a/crates/shadowsocks-service/src/local/net/udp/association.rs +++ b/crates/shadowsocks-service/src/local/net/udp/association.rs @@ -457,6 +457,9 @@ where data.len(), err ); + + // Drop the socket and reconnect to another server. + self.proxied_socket = None; } } diff --git a/crates/shadowsocks-service/src/local/tunnel/udprelay.rs b/crates/shadowsocks-service/src/local/tunnel/udprelay.rs index c8e91f3e..50c4ae70 100644 --- a/crates/shadowsocks-service/src/local/tunnel/udprelay.rs +++ b/crates/shadowsocks-service/src/local/tunnel/udprelay.rs @@ -343,6 +343,9 @@ impl UdpAssociationContext { data.len(), err ); + + // Drop the socket and reconnect to another server. + self.proxied_socket = None; } }