-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Client connection under NAT (with empty addr list in adnl packet) drops #6
Comments
I can forward the address from the received packet ( |
I fixed it in my fork. TON vanilla behavior - if the list is empty (not null), then use the sender address from the socket |
Can you please check if this branch https://github.com/broxus/everscale-network/tree/feature/use-packet-addr works for you (with |
Not exactly, because in TON for resolving address by socket it MUST provide AdnlAddrList, but with empty list in schema itself. let addr = match parse_address_list(list, self.options.clock_tolerance_sec) {
Ok(addr) => addr,
Err(e) => {
if let AdnlAddressListError::ListIsEmpty = e {
match raw_packet.socket_addr() {
SocketAddr::V4(addr) => addr,
SocketAddr::V6(_) => {
// IPv6 is not supported
return Err(e.into())
}
}
} else {
return Err(e.into());
}
}
};
|
Requests to the node from clients that are behind NAT (with an empty addr list in adnl packets) are dropped by the node. Because of this, it is impossible to build custom applications on the ADNL protocol using this library.
The text was updated successfully, but these errors were encountered: