nat: reject local STUN paths as Internet mapping evidence

This commit is contained in:
evgeny committed 2026-10-17 18:50:10 +02:00
1 parent 7a40ba536e
commit dbe2640e74
2 files changed
+6

No files matched your search

+2
View File
@@ -593,6 +593,8 @@ static void select_profile(struct nat_socket *state) {
(stun.status == STUN_NAT_COMPLETE || stun.status == STUN_NAT_PARTIAL) &&
stun.measured_at_tb && now >= stun.measured_at_tb && now - stun.measured_at_tb < STUN_NAT_TTL_TB &&
stun.server_count == 2 && stun.translated == 1 && (stun.mapping == STUN_MAP_MATCH || stun.mapping == STUN_MAP_EIM) &&
public_address(state->detector, &stun.servers[0]) && public_address(state->detector, &stun.servers[1]) &&
public_address(state->detector, &stun.mapped[0]) &&
(!selected_address.ss_family || route_ping_addr_equal(&selected_address, &stun.mapped[0], 0))) {
selected.mapping = ADDRESS_MAP_EIM; selected.inbound = ADDRESS_IN_UNKNOWN; selected.source = ADDRESS_SOURCE_STUN;
}