Skip to content

Commit 4eaabb1

Browse files
jwrdegoedehjelmn
authored andcommitted
winnt: Do not differ between cancel / timeout ourselves
(itransfer->flags & USBI_TRANSFER_TIMED_OUT) is already checked by usbi_handle_transfer_cancellation(), make windows_transfer_callback() call usbi_handle_transfer_cancellation() when status == LIBUSB_TRANSFER_CANCELLED like all other os backends do, and leave USBI_TRANSFER_TIMED_OUT handling up to the core, so that future changes to timeout handling do no break winnt. Signed-off-by: Hans de Goede <[email protected]> --- Note: untested
1 parent e9d9c73 commit 4eaabb1

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

libusb/os/windows_nt_common.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -501,22 +501,20 @@ static void windows_transfer_callback(struct usbi_transfer *itransfer, uint32_t
501501
istatus = windows_copy_transfer_data(itransfer, io_size);
502502
if (istatus != LIBUSB_TRANSFER_COMPLETED)
503503
usbi_dbg("Failed to copy partial data in aborted operation: %d", istatus);
504-
if (itransfer->flags & USBI_TRANSFER_TIMED_OUT) {
505-
usbi_dbg("detected timeout");
506-
status = LIBUSB_TRANSFER_TIMED_OUT;
507-
}
508-
else {
509-
usbi_dbg("detected operation aborted");
510-
status = LIBUSB_TRANSFER_CANCELLED;
511-
}
504+
505+
usbi_dbg("detected operation aborted");
506+
status = LIBUSB_TRANSFER_CANCELLED;
512507
break;
513508
default:
514509
usbi_err(ITRANSFER_CTX(itransfer), "detected I/O error %u: %s", io_result, windows_error_str(io_result));
515510
status = LIBUSB_TRANSFER_ERROR;
516511
break;
517512
}
518513
windows_clear_transfer_priv(itransfer); // Cancel polling
519-
usbi_handle_transfer_completion(itransfer, (enum libusb_transfer_status)status);
514+
if (status == LIBUSB_TRANSFER_CANCELLED)
515+
usbi_handle_transfer_cancellation(itransfer);
516+
else
517+
usbi_handle_transfer_completion(itransfer, (enum libusb_transfer_status)status);
520518
}
521519

522520
void windows_handle_callback(struct usbi_transfer *itransfer, uint32_t io_result, uint32_t io_size)

libusb/version_nano.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
#define LIBUSB_NANO 11130
1+
#define LIBUSB_NANO 11131

0 commit comments

Comments
 (0)