aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scd/apdu.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/scd/apdu.c b/scd/apdu.c
index 50363ce4c..db46c4dfe 100644
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -2919,7 +2919,6 @@ open_rapdu_reader (int portno,
gpg_error_t
apdu_dev_list_start (const char *portstr, struct dev_list **l_p)
{
- gpg_error_t err;
struct dev_list *dl = xtrymalloc (sizeof (struct dev_list));
*l_p = NULL;
@@ -2939,6 +2938,8 @@ apdu_dev_list_start (const char *portstr, struct dev_list **l_p)
}
else
{
+ gpg_error_t err;
+
err = ccid_dev_scan (&dl->idx_max, &dl->ccid_table);
if (err)
return err;
@@ -2972,7 +2973,9 @@ apdu_dev_list_start (const char *portstr, struct dev_list **l_p)
void
apdu_dev_list_finish (struct dev_list *dl)
{
+#ifdef HAVE_LIBUSB
ccid_dev_scan_finish (dl->ccid_table, dl->idx_max);
+#endif
xfree (dl);
npth_mutex_unlock (&reader_table_lock);
}
@@ -3117,6 +3120,7 @@ apdu_open_reader (struct dev_list *dl)
{
int slot;
+#ifdef HAVE_LIBUSB
if (dl->ccid_table)
{ /* CCID readers. */
int readerno;
@@ -3189,6 +3193,7 @@ apdu_open_reader (struct dev_list *dl)
slot = -1;
}
else
+#endif
{ /* PC/SC readers. */
if (dl->idx++ == 0)
slot = apdu_open_one_reader (dl->portstr);