diff --git a/Cargo.lock b/Cargo.lock index d7c6318..c4c0839 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1831,7 +1831,7 @@ checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "isideload" -version = "0.2.5" +version = "0.2.6" dependencies = [ "aes 0.9.0-rc.4", "aes-gcm", diff --git a/isideload/Cargo.toml b/isideload/Cargo.toml index 2325bc1..f2e0b39 100644 --- a/isideload/Cargo.toml +++ b/isideload/Cargo.toml @@ -3,7 +3,7 @@ name = "isideload" description = "Sideload iOS/iPadOS applications" license = "MIT" authors = ["Nicholas Sharp "] -version = "0.2.5" +version = "0.2.6" edition = "2024" repository = "https://github.com/nab138/isideload" documentation = "https://docs.rs/isideload" diff --git a/isideload/src/anisette/remote_v3/mod.rs b/isideload/src/anisette/remote_v3/mod.rs index 3b88079..7d6c5c8 100644 --- a/isideload/src/anisette/remote_v3/mod.rs +++ b/isideload/src/anisette/remote_v3/mod.rs @@ -8,6 +8,7 @@ use plist_macro::plist; use reqwest::header::{CONTENT_TYPE, HeaderMap, HeaderValue}; use rootcause::prelude::*; use serde::Deserialize; +use tokio::time::{Duration, timeout}; use tokio_tungstenite::tungstenite::Message; use tracing::{debug, info, warn}; @@ -238,7 +239,13 @@ impl RemoteV3AnisetteProvider { .replace("http://", "ws://"); debug!("Starting provisioning at {}", websocket_url); - let (mut ws_stream, _) = tokio_tungstenite::connect_async(&websocket_url).await?; + let (mut ws_stream, _) = timeout( + Duration::from_secs(10), + tokio_tungstenite::connect_async(&websocket_url), + ) + .await + .context("Failed to connect to provisioning socket")? + .context("Failed to connect to provisioning socket")?; debug!("Connected to provisioning socket");