From d97e85ef4ad3a9747823421e54c31dde874c0c04 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Mon, 15 Feb 2021 22:57:06 +0100 Subject: [PATCH] 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 --- libusb/os/darwin_usb.c | 2 +- libusb/version_nano.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 @@ static int darwin_handle_transfer_completion (struct usbi_transfer *itransfer) { 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 -- 2.7.4