From 30ccbd773bc02d5dfd21e02bfba6d58234f59393 Mon Sep 17 00:00:00 2001 From: Ludovic Rousseau Date: Tue, 8 May 2012 15:53:56 +0200 Subject: [PATCH] Core: Handle TRANSFER_ERROR/TRANSFER_CANCELLED for sync transfers MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Return the more appropriate LIBUSB_ERROR_IO instead of LIBUSB_ERROR_OTHER for the cases LIBUSB_TRANSFER_ERROR and LIBUSB_TRANSFER_CANCELLED * Fixes warnings similar to the following when using the GCC option -Wswitch-enum: warning: enumeration value ‘LIBUSB_TRANSFER_ERROR’ not handled in switch --- libusb/sync.c | 8 ++++++++ libusb/version.h | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libusb/sync.c b/libusb/sync.c index c3c92eb..6bdc3e1 100644 --- a/libusb/sync.c +++ b/libusb/sync.c @@ -135,6 +135,10 @@ int API_EXPORTED libusb_control_transfer(libusb_device_handle *dev_handle, case LIBUSB_TRANSFER_OVERFLOW: r = LIBUSB_ERROR_OVERFLOW; break; + case LIBUSB_TRANSFER_ERROR: + case LIBUSB_TRANSFER_CANCELLED: + r = LIBUSB_ERROR_IO; + break; default: usbi_warn(HANDLE_CTX(dev_handle), "unrecognised status code %d", transfer->status); @@ -205,6 +209,10 @@ static int do_sync_bulk_transfer(struct libusb_device_handle *dev_handle, case LIBUSB_TRANSFER_NO_DEVICE: r = LIBUSB_ERROR_NO_DEVICE; break; + case LIBUSB_TRANSFER_ERROR: + case LIBUSB_TRANSFER_CANCELLED: + r = LIBUSB_ERROR_IO; + break; default: usbi_warn(HANDLE_CTX(dev_handle), "unrecognised status code %d", transfer->status); diff --git a/libusb/version.h b/libusb/version.h index dfc15f1..01ad7fc 100644 --- a/libusb/version.h +++ b/libusb/version.h @@ -9,7 +9,7 @@ #define LIBUSB_MICRO 11 #endif #ifndef LIBUSB_NANO -#define LIBUSB_NANO 10496 +#define LIBUSB_NANO 10497 #endif /* LIBUSB_RC is the release candidate suffix. Should normally be empty. */ #ifndef LIBUSB_RC -- 2.7.4