Core: Handle TRANSFER_ERROR/TRANSFER_CANCELLED for sync transfers
authorLudovic Rousseau <ludovic.rousseau@gmail.com>
Tue, 8 May 2012 13:53:56 +0000 (15:53 +0200)
committerPete Batard <pete@akeo.ie>
Tue, 8 May 2012 16:35:45 +0000 (17:35 +0100)
* 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
libusb/version.h

index c3c92eb..6bdc3e1 100644 (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);
index dfc15f1..01ad7fc 100644 (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