darwin: Don't drop partial data on timeout
A timed out transfer might have been partially filled. Propagate
tpriv->size to avoid dropping this data.
Closes #876
Signed-off-by: Nathan Hjelm <hjelmn@cs.unm.edu>
diff --git a/libusb/os/darwin_usb.c b/libusb/os/darwin_usb.c
index 247954a..337dc92 100644
--- a/libusb/os/darwin_usb.c
+++ b/libusb/os/darwin_usb.c
@@ -2169,7 +2169,7 @@
usbi_dbg ("handling transfer completion type %s with kernel status %d", transfer_types[transfer->type], tpriv->result);
- if (kIOReturnSuccess == tpriv->result || kIOReturnUnderrun == tpriv->result) {
+ if (kIOReturnSuccess == tpriv->result || kIOReturnUnderrun == tpriv->result || kIOUSBTransactionTimeout == tpriv->result) {
if (is_isoc && tpriv->isoc_framelist) {
/* copy isochronous results back */
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 4843a50..ff59c20 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 11605
+#define LIBUSB_NANO 11606