mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
Lock scdaemon to CCID if once found.
This solves a problem where ccid was used, the card unplugged and then scdaemon tries to find a new (plugged in) reader and thus will eventually try PC/SC over and over again. Also added an explicit --kill command to gpgconf.
This commit is contained in:
parent
90dcc0c3ad
commit
7c03c8cc65
7 changed files with 239 additions and 143 deletions
|
@ -1,3 +1,7 @@
|
|||
2011-02-23 Werner Koch <wk@g10code.com>
|
||||
|
||||
* apdu.c (apdu_open_reader): Lock in to CCID if used once.
|
||||
|
||||
2011-01-25 NIIBE Yutaka <gniibe@fsij.org>,
|
||||
Grant Olson <kgo@grant-olson.net> (wk)
|
||||
|
||||
|
|
18
scd/apdu.c
18
scd/apdu.c
|
@ -1,5 +1,6 @@
|
|||
/* apdu.c - ISO 7816 APDU functions and low level I/O
|
||||
* Copyright (C) 2003, 2004, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2003, 2004, 2008, 2009, 2010,
|
||||
* 2011 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GnuPG.
|
||||
*
|
||||
|
@ -2355,12 +2356,25 @@ apdu_open_reader (const char *portstr, int *r_no_service)
|
|||
#ifdef HAVE_LIBUSB
|
||||
if (!opt.disable_ccid)
|
||||
{
|
||||
static int once_available;
|
||||
int i;
|
||||
const char *s;
|
||||
|
||||
slot = open_ccid_reader (portstr);
|
||||
if (slot != -1)
|
||||
return slot; /* got one */
|
||||
{
|
||||
once_available = 1;
|
||||
return slot; /* got one */
|
||||
}
|
||||
|
||||
/* If we ever loaded successfully loaded a CCID reader we never
|
||||
want to fallback to another driver. This solves a problem
|
||||
where ccid was used, the card unplugged and then scdaemon
|
||||
tries to find a new reader and will eventually try PC/SC over
|
||||
and over again. To reset this flag "gpgconf --kill scdaemon"
|
||||
can be used. */
|
||||
if (once_available)
|
||||
return -1;
|
||||
|
||||
/* If a CCID reader specification has been given, the user does
|
||||
not want a fallback to other drivers. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue