Refactor for cleaner code flow
This commit is contained in:
parent
b01625b284
commit
b37cbe9abd
32
scard.c
32
scard.c
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user