mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
feat(windows): detect network changes and log when connlib should stop / start / restart (#3262)
Closes #3000
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
// TODO: `git grep` for unwraps before 1.0, especially this gui module
|
||||
|
||||
use crate::client::{self, deep_link, AppLocalDataDir, BUNDLE_ID};
|
||||
use crate::client::{self, deep_link, network_changes, AppLocalDataDir, BUNDLE_ID};
|
||||
use anyhow::{anyhow, bail, Context, Result};
|
||||
use arc_swap::ArcSwap;
|
||||
use client::{
|
||||
@@ -508,11 +508,24 @@ async fn run_controller(
|
||||
.await
|
||||
.context("couldn't create Controller")?;
|
||||
|
||||
let mut have_internet = network_changes::check_internet()?;
|
||||
tracing::debug!(?have_internet);
|
||||
|
||||
let mut com_worker = network_changes::Worker::new()?;
|
||||
|
||||
loop {
|
||||
tokio::select! {
|
||||
() = controller.notify_controller.notified() => if let Err(e) = controller.refresh_system_tray_menu() {
|
||||
tracing::error!("couldn't reload resource list: {e:#?}");
|
||||
},
|
||||
() = com_worker.notified() => {
|
||||
let new_have_internet = network_changes::check_internet()?;
|
||||
if new_have_internet != have_internet {
|
||||
have_internet = new_have_internet;
|
||||
// TODO: Stop / start / restart connlib as needed here
|
||||
tracing::debug!(?have_internet);
|
||||
}
|
||||
},
|
||||
req = rx.recv() => {
|
||||
let Some(req) = req else {
|
||||
break;
|
||||
@@ -594,6 +607,10 @@ async fn run_controller(
|
||||
}
|
||||
}
|
||||
|
||||
if let Err(error) = com_worker.close() {
|
||||
tracing::error!(?error, "com_worker");
|
||||
}
|
||||
|
||||
// Last chance to do any drops / cleanup before the process crashes.
|
||||
|
||||
Ok(())
|
||||
|
||||
Reference in New Issue
Block a user