[PATCH 1/2] main: Use the config descriptor value, not the index

Tormod Volden lists.tormod at gmail.com
Thu Feb 3 23:12:35 CET 2011


From: Tormod Volden <debian.tormod at gmail.com>

Many libusb functions give or use the bConfigurationValue and
not the index of a configuration. Make sure we consistently
use the former, also as what we store in dif->configuration.
---

This patch is against the libusb-1.0 branch!

Cheers,
Tormod

 src/main.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/main.c b/src/main.c
index e4839ce..74d00b3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -130,7 +130,8 @@ static int find_dfu_if(libusb_device *dev, int (*handler)(struct dfu_if *, void
 						desc.idVendor;
 					dfu_if->product =
 						desc.idProduct;
-					dfu_if->configuration = cfg_idx;
+					dfu_if->configuration = cfg->
+							bConfigurationValue;
 					dfu_if->interface =
 						intf->bInterfaceNumber;
 					dfu_if->altsetting =
@@ -167,7 +168,7 @@ static int print_dfu_if(struct dfu_if *dfu_if, void *v)
 	int if_name_str_idx;
 	unsigned char name[MAX_STR_LEN+1] = "UNDEFINED";
 
-	libusb_get_config_descriptor(dev, dfu_if->configuration, &cfg);
+	libusb_get_config_descriptor_by_value(dev, dfu_if->configuration, &cfg);
 
 	if_name_str_idx = cfg->interface[dfu_if->interface]
 				.altsetting[dfu_if->altsetting].iInterface;
@@ -198,7 +199,7 @@ static int alt_by_name(struct dfu_if *dfu_if, void *v)
 	int if_name_str_idx;
 	unsigned char name[MAX_STR_LEN+1] = "UNDEFINED";
 
-	libusb_get_config_descriptor(dev, dfu_if->configuration, &cfg);
+	libusb_get_config_descriptor_by_value(dev, dfu_if->configuration, &cfg);
 
 	if_name_str_idx = cfg->interface[dfu_if->interface]
 				.altsetting[dfu_if->altsetting].iInterface;
@@ -795,7 +796,7 @@ dfustate:
 
 #if 0
 	printf("Setting Configuration %u...\n", dif->configuration);
-	if (usb_set_configuration(dif->dev_handle, dif->configuration) < 0) {
+	if (libusb_set_configuration(dif->dev_handle, dif->configuration) < 0) {
 		fprintf(stderr, "Cannot set configuration\n");
 		exit(1);
 	}
-- 
1.7.0.4




More information about the devel mailing list