Document failure recheck limits and validate requested endpoints
This commit is contained in:
1 parent
3b894753b1
commit
2dc7e8d206
2 files changed
+15
-2
No files matched your search
@@ -1055,7 +1055,9 @@ static void receive_control(struct ETCP_CONN *from, struct ll_entry *entry) {
|
||||
struct ETCP_SOCKET *socket = find_socket(detector, request.socket_id, 0);
|
||||
struct sockaddr_storage address = {0};
|
||||
if (request.cmd != ETCP_RT_ID_NAT_DETECTION || request.command != NAT_RECHECK || request.version != NAT_WIRE_VERSION ||
|
||||
!socket || socket->is_tcp || socket->probe_only || socket->socks_udp || route_ping_addr_decode(&address, request.address) ||
|
||||
!socket || socket->is_tcp || socket->probe_only || socket->socks_udp ||
|
||||
socket->type == CFG_SERVER_TYPE_LOCAL || socket->type == CFG_SERVER_TYPE_PRIVATE ||
|
||||
route_ping_addr_decode(request.address, &address) ||
|
||||
(!route_ping_addr_equal(&address, &socket->local_addr, 1) && !route_ping_addr_equal(&address, &socket->nat_addr, 1))) {
|
||||
DEBUG_WARN(DEBUG_CATEGORY_NAT, "NAT failure recheck rejected group=%016llx peer=%016llx socket=%u: stale/invalid endpoint",
|
||||
(unsigned long long)group_id, (unsigned long long)sender, request.socket_id); return;
|
||||
|
||||
Reference in new issue
Block a user