hughsie / libgusb

GUsb is a GObject wrapper for libusb1
GNU Lesser General Public License v2.1
25 stars 21 forks source link

Fix BulkTransfer out-of-order reply #103

Closed fdanis-oss closed 1 year ago

fdanis-oss commented 1 year ago

The reply to an out-of-order outgoing BulkTransfer may be also out-of-order.

Currently we can get:

found in-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 315
found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 316
…
found out-of-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 312
found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 320

while expecting:

found in-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 315
found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 316
…
found out-of-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 312
found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 314
…
found in-order BulkTransfer:Endpoint=0x01,Data=…,Length=0x25 at position 319
found in-order BulkTransfer:Endpoint=0x82,Data=…,Length=0x25 at position 320