From 6952d730827165f9596b6c65380f5aeb4e6c985b Mon Sep 17 00:00:00 2001 From: Pali Rohár Date: Tue, 23 Feb 2016 18:15:55 +0100 Subject: libusb-sniff: Fix libusb_control_transfer function --- src/libusb-sniff.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/libusb-sniff.c') diff --git a/src/libusb-sniff.c b/src/libusb-sniff.c index 0ac1259..ea7ef48 100644 --- a/src/libusb-sniff.c +++ b/src/libusb-sniff.c @@ -24,6 +24,7 @@ #define _GNU_SOURCE #include #include +#include #include struct usb_dev_handle; @@ -207,17 +208,17 @@ int usb_control_msg(usb_dev_handle *dev, int requesttype, int request, int value } -int libusb_control_msg(libusb_device_handle *dev, int requesttype, int request, int value, int index, unsigned char *bytes, int size, int timeout) { +int libusb_control_transfer(libusb_device_handle *dev, uint8_t requesttype, uint8_t request, uint16_t value, uint16_t index, unsigned char *bytes, uint16_t size, unsigned int timeout) { - static int (*real_usb_control_msg)(libusb_device_handle *dev, int requesttype, int request, int value, int index, unsigned char *bytes, int size, int timeout) = NULL; + static int (*real_libusb_control_transfer)(libusb_device_handle *dev, uint8_t requesttype, uint8_t request, uint16_t value, uint16_t index, unsigned char *bytes, uint16_t size, unsigned int timeout) = NULL; int ret; - if ( ! real_usb_control_msg ) - *(void **)(&real_usb_control_msg) = dlsym(RTLD_NEXT, "libusb_control_msg"); + if ( ! real_libusb_control_transfer ) + *(void **)(&real_libusb_control_transfer) = dlsym(RTLD_NEXT, "libusb_control_transfer"); if ( requesttype == 64 && ! getenv("USBSNIFF_SKIP_CONTROL") ) { - printf("\n==== usb_control_msg(requesttype=%d, request=%d, value=%d, index=%d, size=%d, timeout=%d) ====\n", requesttype, request, value, index, size, timeout); + printf("\n==== usb_control_msg(requesttype=%d, request=%d, value=%d, index=%d, size=%d, timeout=%d) ====\n", (int)requesttype, (int)request, (int)value, (int)index, (int)size, (int)timeout); dump_bytes((char*) bytes, size); printf("====\n"); @@ -227,11 +228,11 @@ int libusb_control_msg(libusb_device_handle *dev, int requesttype, int request, } - ret = real_usb_control_msg(dev, requesttype, request, value, index, bytes, size, timeout); + ret = real_libusb_control_transfer(dev, requesttype, request, value, index, bytes, size, timeout); if ( requesttype != 64 && ! getenv("USBSNIFF_SKIP_CONTROL") ) { - printf("\n==== usb_control_msg(requesttype=%d, request=%d, value=%d, index=%d, size=%d, timeout=%d) ret = %d ====\n", requesttype, request, value, index, size, timeout, ret); + printf("\n==== usb_control_msg(requesttype=%d, request=%d, value=%d, index=%d, size=%d, timeout=%d) ret = %d ====\n", (int)requesttype, (int)request, (int)value, (int)index, (int)size, (int)timeout, ret); if ( ret > 0 ) { dump_bytes((char*) bytes, ret); printf("====\n"); -- cgit v1.2.3