fix(iroh): Accurately set RecvMeta::dst_ip, remove normalized_local_addr
#3770
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.
Description
Now that we have multipath and don't rely on quinn only seeing "EndpointMappedAddr"s, but instead have it see the actual addresses (minus the one MixedMappedAddr), we can actually address #2632 very easily. We just pass it through from how we get it from the socket/OS.
We don't have to worry about MixedMappedAddrs, because we only use them to send, they never end up at
dst_ipin our transmits, because they get translated to actual IP adresses before hitting the network, and then get received as actualdst_ips on the other side.Notes & open questions
Closes #2632
I think we can also close #2491 then? AFAICT, we removed the
is_unicast_link_localIP check with QNT, so we actually send over link-local addresses now. This could mean that we fully support link-local IPs with this PR now 🎉These changes make sense to me, but I didn't test them super thoroughly. FWIW, all tests that fail in this PR already fail before the changes for me locally.
Change checklist