Overview
| Comment: | Fixed missing card reset | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA1: | d37223bd9df3beef26401cd2f74ccf75 | 
| User & Date: | rkeene on 2010-05-20 20:08:44 | 
| Other Links: | manifest | tags | 
Context
| 2010-05-20 | ||
| 20:09 | CACKey 0.5.1 check-in: a06c5d0dda user: rkeene tags: 0.5.1, trunk | |
| 20:08 | Fixed missing card reset check-in: d37223bd9d user: rkeene tags: trunk | |
| 19:56 | CACKey 0.5.0 Updated cackey to support independent releasescheck-in: 55c89f91a4 user: rkeene tags: 0.5.0, trunk | |
Changes
Modified cackey.c from [93de8e257c] to [4ec2269ed9].
| ︙ | ︙ | |||
| 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 | 
		return(CACKEY_PCSC_S_TOKENABSENT);
	}
	atr_len = sizeof(atr);
	status_ret = SCardStatus(slot->pcsc_card, NULL, &reader_len, &state, &protocol, atr, &atr_len);
	if (status_ret != SCARD_S_SUCCESS) {
		if (status_ret == SCARD_W_RESET_CARD) {
			CACKEY_DEBUG_PRINTF("Reset required, please hold...");
			scard_reconn_ret = SCardReconnect(slot->pcsc_card, SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0, SCARD_RESET_CARD, &protocol);
			if (scard_reconn_ret == SCARD_S_SUCCESS) {
				/* Re-establish transaction, if it was present */
				if (slot->transaction_depth > 0) {
					slot->transaction_depth--;
					cackey_begin_transaction(slot);
 | > > > > > | 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 | 
		return(CACKEY_PCSC_S_TOKENABSENT);
	}
	atr_len = sizeof(atr);
	status_ret = SCardStatus(slot->pcsc_card, NULL, &reader_len, &state, &protocol, atr, &atr_len);
	if (status_ret != SCARD_S_SUCCESS) {
		slot->slot_reset = 1;
		slot->token_flags = CKF_LOGIN_REQUIRED;
		if (status_ret == SCARD_W_RESET_CARD) {
			CACKEY_DEBUG_PRINTF("Reset required, please hold...");
			scard_reconn_ret = SCardReconnect(slot->pcsc_card, SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0, SCARD_RESET_CARD, &protocol);
			if (scard_reconn_ret == SCARD_S_SUCCESS) {
				/* Re-establish transaction, if it was present */
				if (slot->transaction_depth > 0) {
					slot->transaction_depth--;
					cackey_begin_transaction(slot);
 | 
| ︙ | ︙ |