Marcus Brinkmann <marcus@g10code.com>
authorMarcus Brinkmann <mb@g10code.com>
Tue, 23 Sep 2008 13:04:42 +0000 (13:04 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Tue, 23 Sep 2008 13:04:42 +0000 (13:04 +0000)
        * apdu.c (pcsc_get_status): Be more relaxed with the usable flag
        under Windows.

M    scd/ChangeLog
M    scd/apdu.c

scd/ChangeLog
scd/apdu.c

index 2de918b..4a52f69 100644 (file)
@@ -1,3 +1,8 @@
+2008-09-23  Marcus Brinkmann  <marcus@g10code.com>
+
+       * apdu.c (pcsc_get_status): Be more relaxed with the usable flag
+       under Windows.
+
 2008-09-23  Werner Koch  <wk@g10code.com>
 
        * app-openpgp.c (do_setattr): Use command chaining for long
index 171c7a6..5c1c699 100644 (file)
@@ -1082,12 +1082,19 @@ pcsc_get_status (int slot, unsigned int *status)
     *status |= 2;
   if ( !(rdrstates[0].event_state & PCSC_STATE_MUTE) )
     *status |= 4;
+#ifndef HAVE_W32_SYSTEM
   /* We indicate a useful card if it is not in use by another
      application.  This is because we only use exclusive access
      mode.  */
   if ( (*status & 6) == 6
        && !(rdrstates[0].event_state & PCSC_STATE_INUSE) )
     *status |= 1;
+#else
+  /* Some winscard drivers may set EXCLUSIVE and INUSE at the same
+     time when we are the only user (SCM SCR335) under Windows.  */
+  if ((status & 6) == 6)
+    status |= 1;
+#endif
 
   return 0;
 #endif /*!NEED_PCSC_WRAPPER*/