Fix ip4 mapped ip6 addresses not considered to be part of network

This commit is contained in:
nsgundy 2023-05-19 15:21:20 +00:00
parent 482d7fb8cc
commit aeeca0d7d1

View File

@ -1188,8 +1188,16 @@ impl RendezvousServer {
#[inline] #[inline]
fn is_lan(&self, addr: SocketAddr) -> bool { fn is_lan(&self, addr: SocketAddr) -> bool {
if let Some(network) = &self.inner.mask { if let Some(network) = &self.inner.mask {
if let SocketAddr::V4(addr) = addr { match addr {
return network.contains(*addr.ip()); SocketAddr::V4(v4_socket_addr) => {
return network.contains(*v4_socket_addr.ip());
}
SocketAddr::V6(v6_socket_addr) => {
if let Some(v4_addr) = v6_socket_addr.ip().to_ipv4_mapped() {
return network.contains(v4_addr);
}
}
} }
} }
false false