diff options
author | Werner Koch <[email protected]> | 2021-05-04 08:33:30 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2021-05-04 08:33:30 +0000 |
commit | a475bb725be7e275a06e0625b0088f607f36634c (patch) | |
tree | 36e4648b9309cd842148d2fb884fc3d2ce8c63b3 | |
parent | build: Allow running sign-release target from the dist dir. (diff) | |
download | gnupg-a475bb725be7e275a06e0625b0088f607f36634c.tar.gz gnupg-a475bb725be7e275a06e0625b0088f607f36634c.zip |
scd: Add string for another PC/SC error code.
* scd/apdu.c (PCSC_E_NO_READERS_AVAILABLE): New.
(pcsc_error_string): Add a description for this.
* scd/scdaemon.c (scd_kick_the_loop): Fix diagnostic.
Signed-off-by: Werner Koch <[email protected]>
-rw-r--r-- | scd/apdu.c | 2 | ||||
-rw-r--r-- | scd/scdaemon.c | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/scd/apdu.c b/scd/apdu.c index 6850aae49..ccb5c10b0 100644 --- a/scd/apdu.c +++ b/scd/apdu.c @@ -229,6 +229,7 @@ static npth_mutex_t reader_table_lock; #define PCSC_E_NOT_TRANSACTED 0x80100016 #define PCSC_E_READER_UNAVAILABLE 0x80100017 #define PCSC_E_NO_SERVICE 0x8010001D +#define PCSC_E_NO_READERS_AVAILABLE 0x8010002E #define PCSC_E_SERVICE_STOPPED 0x8010001E #define PCSC_W_RESET_CARD 0x80100068 #define PCSC_W_REMOVED_CARD 0x80100069 @@ -604,6 +605,7 @@ pcsc_error_string (long err) case 0x001c: s = "card unsupported"; break; case 0x001d: s = "no service"; break; case 0x001e: s = "service stopped"; break; + case 0x002e: s = "no readers available"; break; default: s = "unknown PC/SC error code"; break; } return s; diff --git a/scd/scdaemon.c b/scd/scdaemon.c index 862278b5c..5491556c6 100644 --- a/scd/scdaemon.c +++ b/scd/scdaemon.c @@ -1221,7 +1221,7 @@ scd_kick_the_loop (void) #else int ret = kill (main_thread_pid, SIGCONT); if (ret < 0) - log_error ("SetEvent for scd_kick_the_loop failed: %s\n", + log_error ("sending signal for scd_kick_the_loop failed: %s\n", gpg_strerror (gpg_error_from_syserror ())); #endif } @@ -1277,6 +1277,8 @@ handle_connections (int listen_fd) events[0] = the_event = INVALID_HANDLE_VALUE; events[1] = INVALID_HANDLE_VALUE; + /* Create event for manual reset, initially non-signaled. Make it + * waitable and inheritable. */ h = CreateEvent (&sa, TRUE, FALSE, NULL); if (!h) log_error ("can't create scd event: %s\n", w32_strerror (-1) ); |