diff options
Diffstat (limited to 'scd/command.c')
-rw-r--r-- | scd/command.c | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/scd/command.c b/scd/command.c index da11e881f..2123b9d6d 100644 --- a/scd/command.c +++ b/scd/command.c @@ -74,10 +74,6 @@ && (c)->reader_slot == locked_session->ctrl_backlink->reader_slot) -/* Flag indicating that the reader has been disabled. */ -static int reader_disabled; - - /* This structure is used to keep track of open readers (slots). */ struct slot_status_s { @@ -414,14 +410,7 @@ get_reader_slot (void) /* Try to open the reader. */ if (ss->slot == -1) { - int no_service_flag; - ss->slot = apdu_open_reader (opt.reader_port, &no_service_flag); - - if (no_service_flag) - { - log_info ("no card services - disabling scdaemon\n"); - reader_disabled = 1; - } + ss->slot = apdu_open_reader (opt.reader_port); /* If we still don't have a slot, we have no readers. Invalidate for now until a reader is attached. */ @@ -444,9 +433,6 @@ open_card (ctrl_t ctrl, const char *apptype) gpg_error_t err; int slot; - if (reader_disabled) - return gpg_error (GPG_ERR_NOT_OPERATIONAL); - /* If we ever got a card not present error code, return that. Only the SERIALNO command and a reset are able to clear from that state. */ @@ -479,7 +465,7 @@ open_card (ctrl_t ctrl, const char *apptype) slot = get_reader_slot (); ctrl->reader_slot = slot; if (slot == -1) - err = gpg_error (reader_disabled? GPG_ERR_NOT_OPERATIONAL: GPG_ERR_CARD); + err = gpg_error (GPG_ERR_CARD); else { /* Fixme: We should move the apdu_connect call to @@ -537,7 +523,7 @@ cmd_serialno (assuan_context_t ctx, char *line) /* Clear the remove flag so that the open_card is able to reread it. */ retry: - if (!reader_disabled && ctrl->server_local->card_removed) + if (ctrl->server_local->card_removed) { if ( IS_LOCKED (ctrl) ) return gpg_error (GPG_ERR_LOCKED); @@ -2066,7 +2052,7 @@ scd_command_handler (ctrl_t ctrl, int fd) BUG (); sl->next_session = ctrl->server_local->next_session; } - stopme = ctrl->server_local->stopme || reader_disabled; + stopme = ctrl->server_local->stopme; xfree (ctrl->server_local); ctrl->server_local = NULL; |