mirror of
https://github.com/rustdesk/rustdesk-server.git
synced 2025-07-01 23:35:38 +00:00
Merge pull request #249 from nsgundy/FixNoDirectConnectionWhenBothPeersOnLan
Fix no direct connection when both peers on LAN
This commit is contained in:
commit
d8e3cb9e65
@ -709,17 +709,14 @@ impl RendezvousServer {
|
|||||||
}
|
}
|
||||||
ph.nat_type = NatType::SYMMETRIC.into(); // will force relay
|
ph.nat_type = NatType::SYMMETRIC.into(); // will force relay
|
||||||
}
|
}
|
||||||
let same_intranet = !ws
|
let same_intranet: bool = !ws
|
||||||
&& match peer_addr {
|
&& (peer_is_lan && is_lan || {
|
||||||
SocketAddr::V4(a) => match addr {
|
match (peer_addr, addr) {
|
||||||
SocketAddr::V4(b) => a.ip() == b.ip(),
|
(SocketAddr::V4(a), SocketAddr::V4(b)) => a.ip() == b.ip(),
|
||||||
|
(SocketAddr::V6(a), SocketAddr::V6(b)) => a.ip() == b.ip(),
|
||||||
_ => false,
|
_ => false,
|
||||||
},
|
}
|
||||||
SocketAddr::V6(a) => match addr {
|
});
|
||||||
SocketAddr::V6(b) => a.ip() == b.ip(),
|
|
||||||
_ => false,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
let socket_addr = AddrMangle::encode(addr).into();
|
let socket_addr = AddrMangle::encode(addr).into();
|
||||||
if same_intranet {
|
if same_intranet {
|
||||||
log::debug!(
|
log::debug!(
|
||||||
@ -1191,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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user