Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Send network change events to connlib to refresh candidates #3429

Closed
Tracked by #2143
jamilbk opened this issue Jan 29, 2024 · 3 comments · Fixed by #4133
Closed
Tracked by #2143

Send network change events to connlib to refresh candidates #3429

jamilbk opened this issue Jan 29, 2024 · 3 comments · Fixed by #4133
Assignees
Labels
area/android_client Issues related to the Android client area/apple_client Issues related to the Apple client area/connlib Firezone's core connectivity library area/linux_client Linux client area/windows_client Issues related to the Windows client kind/UX Changes related specifically to overall user experience and product quality
Milestone

Comments

@jamilbk
Copy link
Member

jamilbk commented Jan 29, 2024

ICE restart will more quickly establish new channels when network conditions change

https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Session_lifetime#ice_restart

@jamilbk jamilbk added area/connlib Firezone's core connectivity library kind/UX Changes related specifically to overall user experience and product quality labels Jan 29, 2024
@jamilbk
Copy link
Member Author

jamilbk commented Mar 4, 2024

@thomaseizinger Is this still relevant or was this already implemented with the switch to snownet?

@thomaseizinger
Copy link
Member

We may use ICE restart when we implement notifications from the OS to connlib that our network changed. That should be the goal of the ticket I think. Whether or not we do that with an ICE restart or individual invalidation of candidates doesn't matter I'd say.

@jamilbk jamilbk changed the title Implement ICE restart Send network change events to connlib to refresh candidates Mar 4, 2024
@jamilbk
Copy link
Member Author

jamilbk commented Mar 4, 2024

Updated title to match

@jamilbk jamilbk added area/android_client Issues related to the Android client area/apple_client Issues related to the Apple client area/windows_client Issues related to the Windows client area/linux_client Linux client labels Mar 4, 2024
@jamilbk jamilbk added this to the 1.0 GA milestone Mar 6, 2024
github-merge-queue bot pushed a commit that referenced this issue Mar 13, 2024
This refactors `Session` to allow for commands to be sent to the
`Eventloop`. Currently, we only send a `Stop` command. With #3429, we
will add more commands like refreshing and updating the DNS servers.
github-merge-queue bot pushed a commit that referenced this issue Mar 13, 2024
Ref #3429 

It doesn't report DNS changes, but I added a proof of concept for how we
could do that.
@jamilbk jamilbk closed this as completed Mar 25, 2024
github-merge-queue bot pushed a commit that referenced this issue Mar 27, 2024
Tried to organize this PR into commits so that it's a bit easier to
review.

1. Involves simplifying the logic in Adapter.swift so that us mortals
can maintain it confidently:
- The `.stoppingTunnel`, `.stoppedTunnelTemporarily`, and
`.stoppingTunnelTemporarily` states have been removed.
- I also removed the `self.` prefix from local vars when it's not
necessary to use it, to be more consistent.
- `onTunnelReady` and `getSystemDefaultResolvers` has been removed, and
`onUpdateRoutes` wired up, along with cleanup necessary to support that.
2. Involves adding the `reconnect` and `set_dns` stubs in the FFI and
fixing the log filter so that we can log them (see #4182 )
3. Involves getting the path update handler working well on macOS using
`SystemConfiguration` to read DNS servers.
4. Involves getting the path update handler working well on iOS by
employing careful trickery to prevent path update cycles by detecting if
`path.gateways` has changed, and avoid setting new DNS if it hasn't.

Refs #4028 
Fixes #4297
Fixes #3565 
Fixes #3429 
Fixes #4175 
Fixes #4176 
Fixes #4309

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/android_client Issues related to the Android client area/apple_client Issues related to the Apple client area/connlib Firezone's core connectivity library area/linux_client Linux client area/windows_client Issues related to the Windows client kind/UX Changes related specifically to overall user experience and product quality
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants