diff --git a/modules/hid/hid.go b/modules/hid/hid.go index 49b239c5..1ae5b3b4 100644 --- a/modules/hid/hid.go +++ b/modules/hid/hid.go @@ -208,7 +208,6 @@ func (mod *HIDRecon) forceStop() error { return mod.SetRunning(false, func() { if mod.dongle != nil { mod.dongle.Close() - mod.dongle = nil mod.Debug("device closed") } }) @@ -218,7 +217,6 @@ func (mod *HIDRecon) Stop() error { mod.waitGroup.Wait() if mod.dongle != nil { mod.dongle.Close() - mod.dongle = nil mod.Debug("device closed") } }) diff --git a/modules/hid/hid_recon.go b/modules/hid/hid_recon.go index fc5d29e1..13df827a 100644 --- a/modules/hid/hid_recon.go +++ b/modules/hid/hid_recon.go @@ -27,7 +27,7 @@ func (mod *HIDRecon) doHopping() { mod.channel = 1 } if err := mod.dongle.SetChannel(mod.channel); err != nil { - if err == gousb.ErrorNoDevice { + if err == gousb.ErrorNoDevice || err == gousb.TransferStall { mod.Error("device disconnected, stopping module") mod.forceStop() return @@ -114,7 +114,7 @@ func (mod *HIDRecon) Start() error { buf, err := mod.dongle.ReceivePayload() if err != nil { - if err == gousb.ErrorNoDevice { + if err == gousb.ErrorNoDevice || err == gousb.TransferStall { mod.Error("device disconnected, stopping module") mod.forceStop() return