diff --git a/examples/minimal/src/main.rs b/examples/minimal/src/main.rs index 0f326fa..6d740de 100644 --- a/examples/minimal/src/main.rs +++ b/examples/minimal/src/main.rs @@ -9,6 +9,7 @@ use isideload::{ teams::DeveloperTeam, }, sideload::{SideloaderBuilder, TeamSelection, builder::MaxCertsBehavior}, + util::keyring_storage::KeyringStorage, }; use tracing::Level; @@ -125,7 +126,10 @@ async fn main() { let mut sideloader = SideloaderBuilder::new(dev_session, apple_id.to_string()) .team_selection(TeamSelection::Prompt(team_selection_prompt)) .max_certs_behavior(MaxCertsBehavior::Prompt(cert_selection_prompt)) - .machine_name("isideload-demo".to_string()) + .storage(Box::new(KeyringStorage::new( + "isideload-minimal".to_string(), + ))) + .machine_name("isideload-minimal".to_string()) .build(); let result = sideloader.install_app(&provider, app_path).await; diff --git a/isideload/src/auth/apple_account.rs b/isideload/src/auth/apple_account.rs index 13f771b..0adea25 100644 --- a/isideload/src/auth/apple_account.rs +++ b/isideload/src/auth/apple_account.rs @@ -457,9 +457,12 @@ impl AppleAccount { debug!("Sending proof login request"); + let mut close_headers = HeaderMap::new(); + close_headers.insert("Connection", HeaderValue::from_static("close")); + let response2 = self .grandslam_client - .plist_request(&gs_service_url, &req2, None) + .plist_request(&gs_service_url, &req2, Some(close_headers)) .await .context("Failed to send proof login request")? .check_grandslam_error() diff --git a/isideload/src/util/keyring_storage.rs b/isideload/src/util/keyring_storage.rs index 7ff4716..0ebaa34 100644 --- a/isideload/src/util/keyring_storage.rs +++ b/isideload/src/util/keyring_storage.rs @@ -43,18 +43,4 @@ impl SideloadingStorage for KeyringStorage { Err(e) => Err(e.into()), } } - - fn store_data(&self, key: &str, value: &[u8]) -> Result<(), Report> { - Entry::new(&self.service_name, key)?.set_secret(value)?; - Ok(()) - } - - fn retrieve_data(&self, key: &str) -> Result>, Report> { - let entry = Entry::new(&self.service_name, key)?; - match entry.get_secret() { - Ok(secret) => Ok(Some(secret)), - Err(keyring::Error::NoEntry) => Ok(None), - Err(e) => Err(e.into()), - } - } }