aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/ChangeLog5
-rw-r--r--g10/apdu.c15
2 files changed, 17 insertions, 3 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 2c6b1bc3e..62b728a75 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-30 Werner Koch <[email protected]>
+
+ * apdu.c (close_ct_reader, close_pcsc_reader): Implemented.
+ (get_ccid_error_string): New. Not very useful messages, though.
+
2003-10-29 Werner Koch <[email protected]>
* cardglue.c (open_card): Ask for card insertion.
diff --git a/g10/apdu.c b/g10/apdu.c
index f561677e7..27304c8b5 100644
--- a/g10/apdu.c
+++ b/g10/apdu.c
@@ -363,7 +363,7 @@ open_ct_reader (int port)
static int
close_ct_reader (int slot)
{
- /* FIXME: Implement. */
+ CT_close (slot);
reader_table[slot].used = 0;
return 0;
}
@@ -594,7 +594,7 @@ pcsc_send_apdu (int slot, unsigned char *apdu, size_t apdulen,
static int
close_pcsc_reader (int slot)
{
- /* FIXME: Implement. */
+ pcsc_release_context (reader_table[slot].pcsc.context);
reader_table[slot].used = 0;
return 0;
}
@@ -608,6 +608,15 @@ close_pcsc_reader (int slot)
Internal CCID driver interface.
*/
+static const char *
+get_ccid_error_string (long err)
+{
+ if (!err)
+ return "okay";
+ else
+ return "unknown CCID error";
+}
+
static int
open_ccid_reader (void)
{
@@ -1062,7 +1071,7 @@ error_string (int slot, long rc)
return ct_error_string (rc);
#ifdef HAVE_LIBUSB
else if (reader_table[slot].is_ccid)
- return "no CCID driver error strings yet";
+ return get_ccid_error_string (rc);
#endif
#ifdef HAVE_OPENSC
else if (reader_table[slot].is_osc)