feat: add dynamic interface management to handle network disconnects#4
Merged
sthelen-enqs merged 4 commits intodevfrom Feb 23, 2026
Merged
Conversation
Member
|
Hello, The CPU spinning bug and warning spam appear to be resolved, and everything has been running smoothly overall. I have a question regarding the recovered interfaces in |
Member
Author
|
This is an oversight. Please feel free to add it :) |
kirollosnct
approved these changes
Feb 10, 2026
Member
|
I added another change to handle a case in the zeroconf client. The issue was that If the network interface is only limited to either IPv4/IPv6, the client would return an error and does not continue the setup with the available protocol. |
e091eb5 to
d18b5a6
Compare
This change fixes infinite warning logs when network interfaces disconnect during mDNS operations. Previously, the code would continue attempting to send to disconnected interfaces, generating warnings on every attempt. Key changes: - Add InterfaceManager to track active/failed interfaces with adaptive backoff - Add error classification (isInterfaceGone) to detect interface failures - Update Client and Server to use InterfaceManager for dynamic iteration - Fix Windows conn wrappers to return errors instead of logging them - Add integration tests that simulate the original disconnect scenario The fix uses separate IPv4/IPv6 managers to prevent cross-protocol failure cascades. When an interface fails with ENXIO, ENETDOWN, or similar errors, it's immediately removed from the active set. Recovery is attempted with adaptive backoff (1s, 5s, 30s) when interfaces reappear.
- Add missing multicast join in server syncInterfaces() to reactivate recovered interfaces and backoff on failures. - Add client/server unit tests covering join multicast groups success and failure paths
d18b5a6 to
a71a40e
Compare
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.
This change fixes infinite warning logs when network interfaces disconnect
during mDNS operations. Previously, the code would continue attempting to
send to disconnected interfaces, generating warnings on every attempt.
Key changes:
The fix uses separate IPv4/IPv6 managers to prevent cross-protocol failure
cascades. When an interface fails with ENXIO, ENETDOWN, or similar errors,
it's immediately removed from the active set. Recovery is attempted with
adaptive backoff (1s, 5s, 30s) when interfaces reappear.
This required the PR #3
It fixes #1