If the device is disconnected it should be removed from the list of
connected devices and free its data.
if ((cond & (G_IO_HUP | G_IO_ERR)) && hdev->intr_watch)
g_io_channel_shutdown(chan, TRUE, NULL);
- hdev->ctrl_watch = 0;
-
- if (hdev->ctrl_io) {
- g_io_channel_unref(hdev->ctrl_io);
- hdev->ctrl_io = NULL;
- }
-
if (hdev->intr_io && !(cond & G_IO_NVAL))
g_io_channel_shutdown(hdev->intr_io, TRUE, NULL);
+ hid_device_free(hdev);
+
return FALSE;
}
return;
failed:
- g_io_channel_unref(hdev->ctrl_io);
- hdev->ctrl_io = NULL;
+ hid_device_free(hdev);
}
static uint8_t bt_hid_connect(struct hal_cmd_hid_connect *cmd, uint16_t len)