[Pkg-gnupg-commit] [gnupg2] 94/116: scd: Fix INTERRUPT transfer.
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Tue Jan 24 04:40:58 UTC 2017
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch master
in repository gnupg2.
commit 21c9ebb908c2ad2e322e7a13e59e5880494c4d67
Author: NIIBE Yutaka <gniibe at fsij.org>
Date: Mon Jan 23 16:12:41 2017 +0900
scd: Fix INTERRUPT transfer.
* scd/ccid-driver.c (find_endpoint): Don't return Bulk endpoint as
Interrupt endpoint.
(ccid_poll): Call libusb_interrupt_transfer.
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
---
scd/ccid-driver.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c
index 5e02628..b7f97ed 100644
--- a/scd/ccid-driver.c
+++ b/scd/ccid-driver.c
@@ -1100,8 +1100,9 @@ find_endpoint (const struct libusb_interface_descriptor *ifcdesc, int mode)
== LIBUSB_TRANSFER_TYPE_INTERRUPT)
&& (ep->bEndpointAddress & 0x80))
return ep->bEndpointAddress;
- else if (((ep->bmAttributes & LIBUSB_TRANSFER_TYPE_MASK)
- == LIBUSB_TRANSFER_TYPE_BULK)
+ else if ((mode == 0 || mode == 1)
+ && ((ep->bmAttributes & LIBUSB_TRANSFER_TYPE_MASK)
+ == LIBUSB_TRANSFER_TYPE_BULK)
&& (ep->bEndpointAddress & 0x80) == want_bulk_in)
return ep->bEndpointAddress;
}
@@ -2459,9 +2460,9 @@ ccid_poll (ccid_driver_t handle)
if (handle->idev)
{
- rc = libusb_bulk_transfer (handle->idev, handle->ep_intr,
- (char*)msg, sizeof msg, &msglen,
- 0 /* ms timeout */ );
+ rc = libusb_interrupt_transfer (handle->idev, handle->ep_intr,
+ (char*)msg, sizeof msg, &msglen,
+ 0 /* ms timeout */ );
if (rc == LIBUSB_ERROR_TIMEOUT)
return 0;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git
More information about the Pkg-gnupg-commit
mailing list