feat: Allow specifying a different listen address in the adapter #1605
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
MTT-1902
This PR introduces the possibility of listening to a different address than the one clients will connect to.
Currently you specify an IP address and a port and this endpoint is both what clients will connect to, and what the server will bind and listen on. Typically that's what you want, but there are situations where a user might not want these to be the same. One is if a user wants their server to listen to all addresses (0.0.0.0). Another is if establishing connections through a NAT with port forwarding enabled (clients will connect to the WAN address, but server will listen on the LAN address).
It is possible to do that today by calling
SetConnectionData
with different values at runtime depending on if we are a server or client, but there's currently no way to do so from the inspector, which is what this PR is addressing.Changelog
com.unity.netcode.adapter.utp
SetConnectionData
method has been updated accordingly to take an optional parameter to specify that listen address.ConnectionAddressData
andNetworkEndPoint
are now deprecated, since their semantics are no longer clear with the introduction of the newListenAddress
field (see above).(A note on the deprecation above: I would be exceedingly surprised if these were actually used by any user. They were only used to convert to/from the UTP
NetworkEndPoint
type internally to make the code "cleaner". Unfortunately they are public, so proper deprecation is in order.)Testing and Documentation