From 4c60d60f8630b7b6f499dc7bd7756e886bc4375e Mon Sep 17 00:00:00 2001 From: joerg_wunsch Date: Mon, 25 Jul 2005 19:52:20 +0000 Subject: [PATCH] On one of my systems (a not-too-current FreeBSD 5.x), libusb appears to have problems sending a control message (returns an "I/O error"). At least try to recover gracefully in the bening case where the user did not request a particular serial number, so we could continue anyway without knowing it. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@481 81a1dc3b-b13d-400b-aceb-764788c761c2 --- ChangeLog | 4 ++++ usb_libusb.c | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3250d64f..33215fbc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2005-07-25 Joerg Wunsch + + * usb_libusb.c: Catch benign errors when reading the serial #. + 2005-06-19 Joerg Wunsch * Makefile.am: Implement libusb-base USB transport for the diff --git a/usb_libusb.c b/usb_libusb.c index d7b98455..d53d04b9 100644 --- a/usb_libusb.c +++ b/usb_libusb.c @@ -117,7 +117,17 @@ static int usbdev_open(char * port, long baud) fprintf(stderr, "%s: usb_open(): cannot read serial number \"%s\"\n", progname, usb_strerror()); - exit(1); + /* + * On some systems, libusb appears to have + * problems sending control messages. Catch the + * benign case where the user did not request a + * particular serial number, so we could + * continue anyway. + */ + if (serno != NULL) + exit(1); /* no chance */ + else + strcpy(string, "[unknown]"); } if (verbose)