CVPN-2505 app-utils: ignore tunnel's own address in Windows network-change monitor#459
Draft
kp-weiwen-goh wants to merge 1 commit into
Draft
CVPN-2505 app-utils: ignore tunnel's own address in Windows network-change monitor#459kp-weiwen-goh wants to merge 1 commit into
kp-weiwen-goh wants to merge 1 commit into
Conversation
The Windows NotifyAddrChange fallback fired on any address change, including the client's own TUN interface address being assigned during tunnel bring-up. Consumers that feed the signal into the client tear down Stream (TCP) connections on a network change, so on Windows every TCP connect was followed ~2s later by a spurious reconnect before any traffic flowed. Datagram connections survive a network change, which masked the problem. Take the tunnel address(es) in NetworkChangeMonitor::spawn and, on Windows, snapshot the system's relevant unicast addresses (excluding loopback, link-local and the tunnel itself) on each notification, signalling only when that filtered set actually changes. This mirrors the prefix==0 default-route filter already applied to route changes.
|
Code coverage summary for 3c845e2: ✅ Region coverage 68% passes |
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.
Description
Ignore tunnel IP when detecting network change.
Take the tunnel address(es) in NetworkChangeMonitor::spawn and, on Windows, snapshot the system's relevant unicast addresses (excluding loopback, link-local and the tunnel itself) on each notification, signalling only when that filtered set actually changes. This mirrors the prefix==0 default-route filter already applied to route changes.
Motivation and Context
The Windows NotifyAddrChange fallback fired on any address change, including the client's own TUN interface address being assigned during tunnel bring-up. Consumers that feed the signal into the client tear down Stream (TCP) connections on a network change, so on Windows every TCP connect was followed ~2s later by a spurious reconnect before any traffic flowed.
How Has This Been Tested?
Verified network change sent correctly
Types of changes
Checklist:
main