[Pcsclite-cvs-commit] r6369 - /trunk/PCSC/src/winscard.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Fri Jun 29 09:19:07 UTC 2012
Author: rousseau
Date: Fri Jun 29 09:19:07 2012
New Revision: 6369
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=6369
Log:
SCardReconnect(): use an exit block
goto exit; instead of a direct return SCARD_E_*;
This will allow to factorize exit code.
Modified:
trunk/PCSC/src/winscard.c
Modified: trunk/PCSC/src/winscard.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard.c?rev=6369&op=diff
==============================================================================
--- trunk/PCSC/src/winscard.c (original)
+++ trunk/PCSC/src/winscard.c Fri Jun 29 09:19:07 2012
@@ -534,14 +534,14 @@
*/
rv = RFCheckReaderStatus(rContext);
if (rv != SCARD_S_SUCCESS)
- return rv;
+ goto exit;
/*
* Make sure no one has a lock on this reader
*/
rv = RFCheckSharing(hCard, rContext);
if (rv != SCARD_S_SUCCESS)
- return rv;
+ goto exit;
if (dwInitialization == SCARD_RESET_CARD ||
dwInitialization == SCARD_UNPOWER_CARD)
@@ -593,13 +593,15 @@
if (rv == SCARD_W_REMOVED_CARD)
{
rContext->readerState->readerState = SCARD_ABSENT;
- return SCARD_E_NO_SMARTCARD;
+ rv = SCARD_E_NO_SMARTCARD;
+ goto exit;
}
else
{
rContext->readerState->readerState =
SCARD_PRESENT | SCARD_SWALLOWED;
- return SCARD_W_UNRESPONSIVE_CARD;
+ rv = SCARD_W_UNRESPONSIVE_CARD;
+ goto exit;
}
}
}
@@ -609,11 +611,17 @@
uint32_t readerState = rContext->readerState->readerState;
if (readerState & SCARD_ABSENT)
- return SCARD_E_NO_SMARTCARD;
+ {
+ rv = SCARD_E_NO_SMARTCARD;
+ goto exit;
+ }
if ((readerState & SCARD_PRESENT)
&& (readerState & SCARD_SWALLOWED))
- return SCARD_W_UNRESPONSIVE_CARD;
+ {
+ rv = SCARD_W_UNRESPONSIVE_CARD;
+ goto exit;
+ }
}
/*******************************************
@@ -653,13 +661,15 @@
if (SET_PROTOCOL_PPS_FAILED == ret)
{
(void)pthread_mutex_unlock(rContext->mMutex);
- return SCARD_W_UNRESPONSIVE_CARD;
+ rv = SCARD_W_UNRESPONSIVE_CARD;
+ goto exit;
}
if (SET_PROTOCOL_WRONG_ARGUMENT == ret)
{
(void)pthread_mutex_unlock(rContext->mMutex);
- return SCARD_E_PROTO_MISMATCH;
+ rv = SCARD_E_PROTO_MISMATCH;
+ goto exit;
}
/* use negotiated protocol */
@@ -672,7 +682,10 @@
(void)pthread_mutex_unlock(rContext->mMutex);
if (! (dwPreferredProtocols & rContext->readerState->cardProtocol))
- return SCARD_E_PROTO_MISMATCH;
+ {
+ rv = SCARD_E_PROTO_MISMATCH;
+ goto exit;
+ }
}
}
}
@@ -716,7 +729,8 @@
(void)RFLockSharing(hCard, rContext);
} else
{
- return SCARD_E_SHARING_VIOLATION;
+ rv = SCARD_E_SHARING_VIOLATION;
+ goto exit;
}
}
} else if (dwShareMode == SCARD_SHARE_SHARED)
@@ -750,7 +764,10 @@
rContext->contexts = PCSCLITE_SHARING_LAST_CONTEXT;
}
} else
- return SCARD_E_INVALID_VALUE;
+ {
+ rv = SCARD_E_INVALID_VALUE;
+ goto exit;
+ }
/*
* Clear a previous event to the application
@@ -762,7 +779,10 @@
*/
rContext->readerState->readerSharing = rContext->contexts;
- return SCARD_S_SUCCESS;
+ rv = SCARD_S_SUCCESS;
+
+exit:
+ return rv;
}
LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition)
More information about the Pcsclite-cvs-commit
mailing list