Refactor for cleaner code flow

This commit is contained in:
Henrik Andersson 2017-03-29 13:36:43 +02:00
parent b01625b284
commit b37cbe9abd

32
scard.c
View File

@ -666,33 +666,35 @@ TS_SCardEstablishContext(STREAM in, STREAM out)
MYPCSC_SCARDCONTEXT myHContext;
SERVER_SCARDCONTEXT hContext;
/* code segment */
logger(SmartCard, Debug, "TS_SCardEstablishContext()");
rv = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &myHContext);
hContext = 0;
if (myHContext)
{
_scard_handle_list_add(myHContext);
hContext = _scard_handle_list_get_server_handle(myHContext);
}
/* code segment */
logger(SmartCard, Debug, "TS_SCardEstablishContext()");
if (rv)
rv = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &myHContext);
if (rv != SCARD_S_SUCCESS)
{
logger(SmartCard, Error, "TS_SCardEstablishContext(), failed: %s (0x%08x)",
pcsc_stringify_error(rv), (unsigned int) rv);
goto bail_out;
}
else
if (myHContext == NULL)
{
logger(SmartCard, Debug,
"TS_SCardEstablishContext(), success. context: 0x%08x, [0x%lx]", hContext,
myHContext);
logger(SmartCard, Error, "TS_SCardEstablishedContext(), myHContext == NULL");
goto bail_out;
}
/* add context to list of handle and get server handle */
_scard_handle_list_add(myHContext);
hContext = _scard_handle_list_get_server_handle(myHContext);
logger(SmartCard, Debug,
"TS_SCardEstablishContext(), success. context: 0x%08x, [0x%lx]", hContext,
myHContext);
bail_out:
out_uint32_le(out, 0x00000004);
out_uint32_le(out, hContext); /* must not be 0 (Seems to be pointer), don't know what is this (I use hContext as value) */
/* i hope it's not a pointer because i just downcasted it - jlj */