fix(s2n-quic-core): add path handle maybe_update method #1713
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.
Resolved issues:
resolves #954
Description of changes:
As noted in the linked issue, we are currently not updating the client's local path handle for the duration of the connection. This is a bigger problem when we get to XDP since we also need to store the Ethernet address for the remote handle, in addition to updating the local IP.
I've added a
maybe_update
function on the path handle trait so the client can update it on receiving a packet from the server.Call outs
While I was here, I moved the limits range test into the actual limits module. The
s2n-quic/src/tests.rs
is for integration-level testing.Testing:
You can see the output of the events now showing the local address on the client: https://dnglbrstg7yg.cloudfront.net/f020c737fc9f45497f3620669ff52639c6248181/interop/logs/latest/aioquic_s2n-quic/ipv6/client/logs.txt
Before it wasn't: https://dnglbrstg7yg.cloudfront.net/95db1f7e16463c77880cb69fb9e64e43f692c1ba/interop/logs/latest/aioquic_s2n-quic/ipv6/client/logs.txt
I've also included an integration test to make sure the behavior is preserved.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.