Core: Handle TRANSFER_ERROR/TRANSFER_CANCELLED for sync transfers

* 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
This commit is contained in:
Ludovic Rousseau
2012-05-08 15:53:56 +02:00
committed by Pete Batard
parent 6d47fa1bc5
commit 30ccbd773b
2 changed files with 9 additions and 1 deletions
+8
View File
@@ -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);
+1 -1
View File
@@ -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