mirror of https://github.com/jetkvm/kvm.git
Fix: reopen HID files on USB state transitions to prevent stale handles
When USB state transitions to "configured" (after reconnection or state changes), automatically close and reopen HID file handles to ensure they remain valid.
This commit is contained in:
parent
9f0d9c4689
commit
df76cd0a3e
12
usb.go
12
usb.go
|
|
@ -109,8 +109,18 @@ func checkUSBState() {
|
|||
return
|
||||
}
|
||||
|
||||
oldState := usbState
|
||||
usbState = newState
|
||||
usbLogger.Info().Str("from", usbState).Str("to", newState).Msg("USB state changed")
|
||||
usbLogger.Info().Str("from", oldState).Str("to", newState).Msg("USB state changed")
|
||||
|
||||
if newState == "configured" && oldState != "configured" {
|
||||
usbLogger.Info().Msg("USB configured, reopening HID files")
|
||||
gadget.CloseHidFiles()
|
||||
gadget.PreOpenHidFiles()
|
||||
if err := gadget.OpenKeyboardHidFile(); err != nil {
|
||||
usbLogger.Error().Err(err).Msg("failed to reopen keyboard hid file")
|
||||
}
|
||||
}
|
||||
|
||||
requestDisplayUpdate(true, "usb_state_changed")
|
||||
triggerUSBStateUpdate()
|
||||
|
|
|
|||
Loading…
Reference in New Issue