]> err.no Git - yubikey-personalization.old/commitdiff
Slot 2 configuration was broken with libusb-win32.
authorFredrik Thulin <fredrik@yubico.com>
Thu, 7 Apr 2011 18:03:48 +0000 (20:03 +0200)
committerFredrik Thulin <fredrik@yubico.com>
Thu, 7 Apr 2011 18:03:48 +0000 (20:03 +0200)
Reading status reports with slot 2 did not work with
libusb-win32 (1.0.8) for some reason, while working just fine on
Linux and Mac OS X.

ykcore/ykcore.c

index 88aff0e8f488e9aa615f3b6171d04a2101b74ef0..8a073318b7545bef2336829e1c906fd4acaec202 100644 (file)
@@ -223,7 +223,6 @@ int yk_write_config(YK_KEY *yk, YK_CONFIG *cfg, int confnum,
         * This wait can't be done in yk_write_to_key since some users of that function
         * want to get the bytes in the status message, but when writing configuration
         * we don't expect any data back.
-        *
         */
        yk_wait_for_key_status(yk, slot, 0, WAIT_FOR_WRITE_FLAG, false, SLOT_WRITE_FLAG, NULL);
 
@@ -336,6 +335,14 @@ int yk_wait_for_key_status(YK_KEY *yk, uint8_t slot, unsigned int flags,
        int slept_time = 0;
        int blocking = 0;
 
+       /* Non-zero slot breaks on Windows (libusb-1.0.8-win32), while working fine
+        * on Linux (and probably MacOS X).
+        *
+        * The YubiKey doesn't support per-slot status anyways at the moment (2.2),
+        * so we just set it to 0 (meaning slot 1).
+        */
+       slot = 0;
+
        while (slept_time < max_time_ms) {
                /* Read a status report from the key */
                memset(data, 0, sizeof(data));