Fix NativeAddress update bug in FinishEndPointChange method #578
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.
Bug description
Setup
Unity client connecting to C# server
Unity client changes network (wifi/mobile etc)
Server has
AllowPeerAddressChange = trueandUseNativeSockets = trueI was experiencing that the server notices the address change but the client does not receive packets after the
PeerNotFoundpackets.The order of operations was different in the constructor and
FinishEndPointChange, causing theNativeAddressto be set using the old_cachedSocketAddr. The NetPeer looks like it is sending to the new client IP/port, but is actually still using the old one.Change
Reordered _cachedSocketAddr assignment to occur before NativeAddress population, ensuring NativeAddress contains updated endpoint data rather than stale data during successful endpoint changes.