Fix multiple issues found during code review#6
Merged
Conversation
- Add parse_error_reply() to handle ICMP Destination Unreachable and Time Exceeded messages by extracting identifier/sequence from the embedded original echo request (IPv4 and IPv6) - Make router failure persistent so all subsequent send() calls fail fast with a consistent error instead of consuming it once - Drain in-flight requests on router failure by clearing the registry, causing channel-closed handlers to check the stored error - Register in the request registry before send_to to prevent a race where fast loopback replies arrive before the entry exists - Fix verify_checksum() tautology (|| -> && for IPv6 skip logic) - Fix potential underflow in timeout RTT calculation (saturating_sub) - Read macOS IPv4 IP header length from IHL nibble instead of hardcoding 20 bytes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
||to&&for IPv6 skip logic)parse_error_reply()to handle ICMP Destination Unreachable and Time Exceeded messages by extracting identifier/sequence from the embedded original echo request (IPv4 and IPv6)send()calls fail fast with a consistent error instead of consuming it oncesend_to()to prevent a race where fast loopback replies arrive before the entry existssaturating_subwindows0.62.2,socket20.6.2,tokio1.49.0