Repository navigation
fix(runtime): keep live NE manager after wedged preference load - #103
Draft
cursor[bot] wants to merge 1 commit into
Draft
cursor[bot] wants to merge 1 commit into
cursor[bot] wants to merge 1 commit into
Conversation
Replacing the owned transparent-proxy manager when loadAllFromPreferences times out made stop() target a disconnected preference and left the running tunnel/DNS session up after a failed live update. Co-authored-by: redial.solute_1r <redial.solute_1r@icloud.com>
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.
Bug and impact
When System Extension capture is already connected, a live apply can hit a wedged
loadAllFromPreferences(nehelper never callbacks). #99 recovered by constructing a freshNETransparentProxyManagerand assigning it toself.manager.stop()only drives the actor-owned manager. After that replacement, fallback teardown (HostBridgelive-update failure →stop(dropWedgedConfiguration:)) targets a disconnected preference and never callsstopVPNTunnel()on the running session. The old tunnel can keep capturing (failOpen: trueleak) or leave NEDNSProxy intercepting after the SOCKS/DNS backend is gone (resolver blackhole).Root cause
The wedged-enumeration recovery treated “create a new manager object” as equivalent to owning the live tunnel. Preference I/O and the in-memory session are not the same object after a timeout.
Fix
reset).Validation
configure→configureAndApplyRunning→HostBridgefallbackstop()ownership.git diff --check