Introduce function to determine if ZT comms channel to peer is relayed #6447
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.
Step 3 for retrieving route information for players in your game session. The NDP protocol is used to look up the virtual MAC address of the peer based on their virtual IPv6 address. That MAC address is passed into the ZT core function we added in diasurgical/libzt#12 to get their peer info. The peer ID can then be cross-checked against the ZT event messages we receive in our callback function to determine the status of the connection between peers.
Based on some of the testing I've done so far, the connection is typically relayed for the first few seconds after you join someone's game, after which it gets updated to a direct route. I had been hoping it would be good enough to just display a message when the player joins a game regarding whether the connection to their peers is relayed, but it seems like that wouldn't work. Probably it would be better to display this on demand, like maybe in response to a textcmd entry.