From 32d8a62fec9a82087d628dc74664a47a39cd151b Mon Sep 17 00:00:00 2001 From: mofeng-git Date: Fri, 24 Jul 2026 11:02:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6?= =?UTF-8?q?=E5=AE=8C=E6=95=B4=E5=BA=94=E7=94=A8=20USB=20=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E6=97=B6=E9=85=8D=E7=BD=AE=EF=BC=8C=E9=81=BF=E5=85=8D=E9=81=97?= =?UTF-8?q?=E6=BC=8F=20MSD=20=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/web/handlers/setup.rs | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/src/web/handlers/setup.rs b/src/web/handlers/setup.rs index b8712dc2..0179cf83 100644 --- a/src/web/handlers/setup.rs +++ b/src/web/handlers/setup.rs @@ -65,6 +65,8 @@ pub async fn setup_init( )); } + let old_config = state.config.get(); + // Create single system user state .users @@ -140,18 +142,10 @@ pub async fn setup_init( }) .await?; - // Get updated config for HID reload + // Apply the complete USB runtime configuration, including the MSD controller. let new_config = state.config.get(); - - #[cfg(unix)] - { - if let Err(e) = state - .otg_service - .apply_config(&new_config.hid, &new_config.msd, &new_config.otg_network) - .await - { - tracing::warn!("Failed to apply OTG config during setup: {}", e); - } + if let Err(e) = config::apply::apply_usb_config(&state, &old_config, &new_config).await { + tracing::warn!("Failed to apply USB config during setup: {}", e); } tracing::info!( @@ -160,25 +154,6 @@ pub async fn setup_init( new_config.rustdesk.enabled ); - // Initialize HID backend with new config - let new_hid_backend = match new_config.hid.backend { - crate::config::HidBackend::Otg => crate::hid::HidBackendType::Otg, - crate::config::HidBackend::Ch9329 => crate::hid::HidBackendType::Ch9329 { - port: new_config.hid.ch9329_port.clone(), - baud_rate: new_config.hid.ch9329_baudrate, - hybrid_mouse: new_config.hid.ch9329_hybrid_mouse, - }, - crate::config::HidBackend::None => crate::hid::HidBackendType::None, - }; - - // Reload HID backend - if let Err(e) = state.hid.reload(new_hid_backend).await { - tracing::warn!("Failed to initialize HID backend during setup: {}", e); - // Don't fail setup, just warn - } else { - tracing::info!("HID backend initialized: {:?}", new_config.hid.backend); - } - // Start extensions if enabled if new_config.extensions.ttyd.enabled { if let Err(e) = state