From d6da1656b8c00a6a2e50e4faa31eacf53d927db0 Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Sat, 13 Jun 2026 19:29:36 +0200 Subject: [PATCH] clean up ICE config (#1072) --- src/lib.rs | 7 ++++++- src/netplay.rs | 8 ++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 584e0134..bd49c79d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -169,6 +169,8 @@ pub fn run(args: Args, arg_count: usize) -> std::io::Result<()> { let mut shutdown_tx = None; let mut usb_handle = None; + let ice_config_path = dirs.cache_dir.join("ice_config.json"); + if let Some(server_addr) = args.netplay_server_addr && let Some(player_number) = args.netplay_player_number && let Some(number_of_players) = args.netplay_number_of_players @@ -179,6 +181,7 @@ pub fn run(args: Args, arg_count: usize) -> std::io::Result<()> { player_number, number_of_players, input_delay, + ice_config_path.clone(), device::cart::rom::is_system_pal(&rom_contents), ); if device.netplay.is_none() { @@ -253,7 +256,9 @@ pub fn run(args: Args, arg_count: usize) -> std::io::Result<()> { #[cfg(not(target_os = "android"))] retroachievements::shutdown_client(); - if device.netplay.is_none() { + if device.netplay.is_some() { + netplay::close(ice_config_path); + } else { for i in 0..4 { if device.ui.config.input.transfer_pak[i] && !device.ui.config.input.gb_ram_path[i].is_empty() diff --git a/src/netplay.rs b/src/netplay.rs index 60267daa..29d53cc1 100644 --- a/src/netplay.rs +++ b/src/netplay.rs @@ -351,14 +351,14 @@ pub fn init( player_number: usize, number_of_players: usize, input_delay: usize, + ice_config_path: std::path::PathBuf, pal: bool, ) -> Option { let mut builder = matchbox_socket::WebRtcSocketBuilder::new(server_addr) .add_unreliable_channel() .add_reliable_channel(); - if let ice_config_path = ui::get_dirs().cache_dir.join("ice_config.json") - && let Ok(ice_config) = std::fs::read(&ice_config_path) + if let Ok(ice_config) = std::fs::read(&ice_config_path) && let Ok(ice_config) = serde_json::from_slice::(&ice_config) { builder = builder.ice_server(matchbox_socket::RtcIceServerConfig { @@ -472,3 +472,7 @@ pub fn init( messages: std::collections::HashMap::new(), }) } + +pub fn close(ice_config_path: std::path::PathBuf) { + let _ = std::fs::remove_file(ice_config_path); +}