diff --git a/Cargo.lock b/Cargo.lock index d71084c9e..5d70ba42a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9182,6 +9182,7 @@ name = "network" version = "0.1.0" dependencies = [ "pinger", + "reqwest 0.12.22", ] [[package]] diff --git a/crates/analytics/src/lib.rs b/crates/analytics/src/lib.rs index 496e58a79..bf3d8cfd0 100644 --- a/crates/analytics/src/lib.rs +++ b/crates/analytics/src/lib.rs @@ -20,7 +20,8 @@ impl AnalyticsClient { } pub async fn event(&self, payload: AnalyticsPayload) -> Result<(), Error> { - if !hypr_network::is_online().await { + + if !hypr_network::is_online(&self.client).await { return Ok(()); } diff --git a/crates/network/Cargo.toml b/crates/network/Cargo.toml index 0ec636968..5477a2eb7 100644 --- a/crates/network/Cargo.toml +++ b/crates/network/Cargo.toml @@ -5,3 +5,4 @@ edition = "2021" [dependencies] pinger = { git = "https://github.com/orf/gping", package = "pinger" } +reqwest = { workspace = true } diff --git a/crates/network/src/lib.rs b/crates/network/src/lib.rs index 31d7cae06..5d8f9c2af 100644 --- a/crates/network/src/lib.rs +++ b/crates/network/src/lib.rs @@ -1,16 +1,8 @@ -pub async fn is_online() -> bool { - let target = "8.8.8.8".to_string(); - let interval = std::time::Duration::from_secs(1); - let options = pinger::PingOptions::new(target, interval, None); +pub async fn is_online(client: &reqwest::Client) -> bool { + let url = "https://posthog.com/"; - if let Ok(stream) = pinger::ping(options) { - if let Some(message) = stream.into_iter().next() { - match message { - pinger::PingResult::Pong(_, _) => return true, - _ => return false, - } - } + match client.get(url).send().await { + Ok(resp) if resp.status().is_success() => true, + _ => false, } - - false }