fix: explicitly activate protection profiles - #29
Open
UglyEgg wants to merge 1 commit into
Open
Conversation
Adding a protection profile alone relies on device autoconnect and a later device-added signal. A manual device disconnect disables autoconnect while leaving the profile in NetworkManager, so startup can wait indefinitely and later retries can accumulate profiles. Explicitly activate a newly added or exactly matching existing profile and observe the returned ActiveConnection. Reuse active or activating profiles, compare normalized copies without mutating the request, propagate activation failure, and retire cancellables and signal handlers on bounded-wait timeout. Cover inactive, activating, active, duplicate, mismatched, failed, cancelled, and late-callback paths with real libnm settings and fake I/O.
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.
Problem
The WireGuard protection helper adds a profile and waits for a
device-addedsignal. Adding a profile does not guarantee activation when autoconnect is no longer eligible. After a manual device disconnect, NetworkManager can retain an inactive profile; startup then waits indefinitely and retries can add more profiles.NetworkManager documents that adding an unsaved profile starts it only when autoconnect is eligible, while
activate_connection_asyncexplicitly starts the connection and returns anNMActiveConnectionwhose state tracks final activation:Change
NMActiveConnection.statethrough activation completion.Verification
Development disclosure: I developed this patch with material assistance from OpenAI Codex under my direction, then reviewed, tested, and signed the final change.