mirror of https://github.com/neutrinolabs/xrdp
chansrv: reduce smart card debug logging
This commit is contained in:
parent
62bdacda9b
commit
2943650685
|
@ -284,7 +284,7 @@ SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1, LPCVOID pvReserved2,
|
|||
int bytes;
|
||||
int status;
|
||||
|
||||
LLOGLN(0, ("SCardEstablishContext:"));
|
||||
LLOGLN(10, ("SCardEstablishContext:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
if (connect_to_chansrv() != 0)
|
||||
|
@ -332,7 +332,7 @@ SCardReleaseContext(SCARDCONTEXT hContext)
|
|||
int bytes;
|
||||
int status;
|
||||
|
||||
LLOGLN(0, ("SCardReleaseContext:"));
|
||||
LLOGLN(10, ("SCardReleaseContext:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardReleaseContext: error, not connected"));
|
||||
|
@ -369,7 +369,7 @@ SCardReleaseContext(SCARDCONTEXT hContext)
|
|||
PCSC_API LONG
|
||||
SCardIsValidContext(SCARDCONTEXT hContext)
|
||||
{
|
||||
LLOGLN(0, ("SCardIsValidContext:"));
|
||||
LLOGLN(10, ("SCardIsValidContext:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardIsValidContext: error, not connected"));
|
||||
|
@ -392,8 +392,8 @@ SCardConnect(SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode,
|
|||
int status;
|
||||
int offset;
|
||||
|
||||
LLOGLN(0, ("SCardConnect:"));
|
||||
LLOGLN(0, ("SCardConnect: hContext %p szReader %s dwShareMode %d "
|
||||
LLOGLN(10, ("SCardConnect:"));
|
||||
LLOGLN(10, ("SCardConnect: hContext %p szReader %s dwShareMode %d "
|
||||
"dwPreferredProtocols %d",
|
||||
(void*)hContext, szReader, dwShareMode, dwPreferredProtocols));
|
||||
if (g_sck == -1)
|
||||
|
@ -471,7 +471,7 @@ SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition)
|
|||
int bytes;
|
||||
int status;
|
||||
|
||||
LLOGLN(0, ("SCardDisconnect:"));
|
||||
LLOGLN(10, ("SCardDisconnect:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardDisconnect: error, not connected"));
|
||||
|
@ -514,7 +514,7 @@ SCardBeginTransaction(SCARDHANDLE hCard)
|
|||
int bytes;
|
||||
int status;
|
||||
|
||||
LLOGLN(0, ("SCardBeginTransaction:"));
|
||||
LLOGLN(10, ("SCardBeginTransaction:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardBeginTransaction: error, not connected"));
|
||||
|
@ -556,7 +556,7 @@ SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition)
|
|||
int bytes;
|
||||
int status;
|
||||
|
||||
LLOGLN(0, ("SCardEndTransaction:"));
|
||||
LLOGLN(10, ("SCardEndTransaction:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardEndTransaction: error, not connected"));
|
||||
|
@ -604,7 +604,7 @@ SCardStatus(SCARDHANDLE hCard, LPSTR mszReaderName, LPDWORD pcchReaderLen,
|
|||
int cchReaderLen;
|
||||
int to_copy;
|
||||
|
||||
LLOGLN(0, ("SCardStatus:"));
|
||||
LLOGLN(10, ("SCardStatus:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardStatus: error, not connected"));
|
||||
|
@ -640,10 +640,10 @@ SCardStatus(SCARDHANDLE hCard, LPSTR mszReaderName, LPDWORD pcchReaderLen,
|
|||
}
|
||||
pthread_mutex_unlock(&g_mutex);
|
||||
|
||||
LLOGLN(0, ("SCardStatus: cchReaderLen %d", *pcchReaderLen));
|
||||
LLOGLN(10, ("SCardStatus: cchReaderLen %d", *pcchReaderLen));
|
||||
offset = 0;
|
||||
*pcchReaderLen = GET_UINT32(msg, offset);
|
||||
LLOGLN(0, ("SCardStatus: cchReaderLen %d", *pcchReaderLen));
|
||||
LLOGLN(10, ("SCardStatus: cchReaderLen %d", *pcchReaderLen));
|
||||
offset += 4;
|
||||
if (cchReaderLen > 0)
|
||||
{
|
||||
|
@ -655,21 +655,21 @@ SCardStatus(SCARDHANDLE hCard, LPSTR mszReaderName, LPDWORD pcchReaderLen,
|
|||
memcpy(mszReaderName, msg + offset, to_copy);
|
||||
mszReaderName[to_copy] = 0;
|
||||
}
|
||||
LLOGLN(0, ("SCardStatus: mszReaderName %s", mszReaderName));
|
||||
LLOGLN(10, ("SCardStatus: mszReaderName %s", mszReaderName));
|
||||
offset += *pcchReaderLen;
|
||||
*pdwState = GET_UINT32(msg, offset);
|
||||
LLOGLN(0, ("SCardStatus: dwState %d", *pdwState));
|
||||
LLOGLN(10, ("SCardStatus: dwState %d", *pdwState));
|
||||
offset += 4;
|
||||
*pdwProtocol = GET_UINT32(msg, offset);
|
||||
LLOGLN(0, ("SCardStatus: dwProtocol %d", *pdwProtocol));
|
||||
LLOGLN(10, ("SCardStatus: dwProtocol %d", *pdwProtocol));
|
||||
offset += 4;
|
||||
*pcbAtrLen = GET_UINT32(msg, offset);
|
||||
offset += 4;
|
||||
LLOGLN(0, ("SCardStatus: cbAtrLen %d", *pcbAtrLen));
|
||||
LLOGLN(10, ("SCardStatus: cbAtrLen %d", *pcbAtrLen));
|
||||
memcpy(pbAtr, msg + offset, *pcbAtrLen);
|
||||
offset += *pcbAtrLen;
|
||||
status = GET_UINT32(msg, offset);
|
||||
LLOGLN(0, ("SCardStatus: status %d", status));
|
||||
LLOGLN(10, ("SCardStatus: status %d", status));
|
||||
offset += 4;
|
||||
free(msg);
|
||||
return status;
|
||||
|
@ -688,7 +688,7 @@ SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout,
|
|||
int str_len;
|
||||
int status;
|
||||
|
||||
LLOGLN(0, ("SCardGetStatusChange:"));
|
||||
LLOGLN(10, ("SCardGetStatusChange:"));
|
||||
LLOGLN(10, (" dwTimeout %d cReaders %d", dwTimeout, cReaders));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
|
@ -779,19 +779,25 @@ SCardControl(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer,
|
|||
int offset;
|
||||
int status = 0;
|
||||
|
||||
LLOGLN(0, ("SCardControl:"));
|
||||
LLOGLN(10, ("SCardControl:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardControl: error, not connected"));
|
||||
return SCARD_F_INTERNAL_ERROR;
|
||||
}
|
||||
LLOGLN(0, ("SCardControl: dwControlCode 0x%8.8x", dwControlCode));
|
||||
LLOGLN(0, ("SCardControl: cbSendLength %d", cbSendLength));
|
||||
LLOGLN(0, ("SCardControl: cbRecvLength %d", cbRecvLength));
|
||||
dwControlCode = dwControlCode & ~0x42000000;
|
||||
LLOGLN(10, ("SCardControl: dwControlCode 0x%8.8x", dwControlCode));
|
||||
LLOGLN(10, ("SCardControl: cbSendLength %d", cbSendLength));
|
||||
LLOGLN(10, ("SCardControl: cbRecvLength %d", cbRecvLength));
|
||||
|
||||
/* #define SCARD_CTL_CODE(code) (0x42000000 + (code))
|
||||
control_code = (control_code & 0x3ffc) >> 2;
|
||||
control_code = SCARD_CTL_CODE(control_code); */
|
||||
|
||||
/* PCSC to Windows control code conversion */
|
||||
dwControlCode = dwControlCode - 0x42000000;
|
||||
dwControlCode = dwControlCode << 2;
|
||||
dwControlCode = dwControlCode | (49 << 16);
|
||||
LLOGLN(0, ("SCardControl: dwControlCode 0x%8.8x", dwControlCode));
|
||||
LLOGLN(10, ("SCardControl: dwControlCode 0x%8.8x", dwControlCode));
|
||||
|
||||
msg = (char *) malloc(8192);
|
||||
offset = 0;
|
||||
|
@ -853,19 +859,19 @@ SCardTransmit(SCARDHANDLE hCard, const SCARD_IO_REQUEST *pioSendPci,
|
|||
int status;
|
||||
int extra_len;
|
||||
|
||||
LLOGLN(0, ("SCardTransmit:"));
|
||||
LLOGLN(10, ("SCardTransmit:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardTransmit: error, not connected"));
|
||||
return SCARD_F_INTERNAL_ERROR;
|
||||
}
|
||||
LLOGLN(0, ("SCardTransmit: cbSendLength %d", cbSendLength));
|
||||
LLOGLN(0, ("SCardTransmit: pioRecvPci %p", pioRecvPci));
|
||||
LLOGLN(10, ("SCardTransmit: cbSendLength %d", cbSendLength));
|
||||
LLOGLN(10, ("SCardTransmit: pioRecvPci %p", pioRecvPci));
|
||||
if (pioRecvPci != 0)
|
||||
{
|
||||
LLOGLN(0, ("SCardTransmit: pioRecvPci->dwProtocol %d",
|
||||
LLOGLN(10, ("SCardTransmit: pioRecvPci->dwProtocol %d",
|
||||
(int)pioRecvPci->dwProtocol));
|
||||
LLOGLN(0, ("SCardTransmit: pioRecvPci->cbPciLength %d",
|
||||
LLOGLN(10, ("SCardTransmit: pioRecvPci->cbPciLength %d",
|
||||
(int)pioRecvPci->cbPciLength));
|
||||
}
|
||||
msg = (char *) malloc(8192);
|
||||
|
@ -952,7 +958,7 @@ SCardTransmit(SCARDHANDLE hCard, const SCARD_IO_REQUEST *pioSendPci,
|
|||
}
|
||||
*pcbRecvLength = GET_UINT32(msg, offset);
|
||||
offset += 4;
|
||||
LLOGLN(0, ("SCardTransmit: cbRecvLength %d", *pcbRecvLength));
|
||||
LLOGLN(10, ("SCardTransmit: cbRecvLength %d", *pcbRecvLength));
|
||||
memcpy(pbRecvBuffer, msg + offset, *pcbRecvLength);
|
||||
offset += *pcbRecvLength;
|
||||
status = GET_UINT32(msg, offset);
|
||||
|
@ -965,7 +971,7 @@ PCSC_API LONG
|
|||
SCardListReaderGroups(SCARDCONTEXT hContext, LPSTR mszGroups,
|
||||
LPDWORD pcchGroups)
|
||||
{
|
||||
LLOGLN(0, ("SCardListReaderGroups:"));
|
||||
LLOGLN(10, ("SCardListReaderGroups:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardListReaderGroups: error, not connected"));
|
||||
|
@ -992,7 +998,7 @@ SCardListReaders(SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR mszReaders,
|
|||
int index;
|
||||
char reader[100];
|
||||
|
||||
LLOGLN(0, ("SCardListReaders:"));
|
||||
LLOGLN(10, ("SCardListReaders:"));
|
||||
if (g_sck == -1)
|
||||
{
|
||||
LLOGLN(0, ("SCardListReaders: error, not connected"));
|
||||
|
@ -1027,7 +1033,8 @@ SCardListReaders(SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR mszReaders,
|
|||
offset = 0;
|
||||
num_readers = GET_UINT32(msg, offset);
|
||||
offset += 4;
|
||||
LLOGLN(10, ("hi - mszReaders %p pcchReaders %p num_readers %d", mszReaders, pcchReaders, num_readers));
|
||||
LLOGLN(10, ("SCardListReaders: mszReaders %p pcchReaders %p num_readers %d",
|
||||
mszReaders, pcchReaders, num_readers));
|
||||
reader_names = (char *) malloc(8192);
|
||||
reader_names_index = 0;
|
||||
for (index = 0; index < num_readers; index++)
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
#define LOG_DEBUG 2
|
||||
|
||||
#ifndef LOG_LEVEL
|
||||
#define LOG_LEVEL LOG_DEBUG
|
||||
#define LOG_LEVEL LOG_INFO
|
||||
#endif
|
||||
|
||||
#define log_error(_params...) \
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
#if PCSC_STANDIN
|
||||
|
||||
#define LLOG_LEVEL 11
|
||||
#define LLOG_LEVEL 1
|
||||
#define LLOGLN(_level, _args) \
|
||||
do \
|
||||
{ \
|
||||
|
@ -88,7 +88,7 @@ static int g_pub_file_fd = 0;
|
|||
int APP_CC
|
||||
scard_pcsc_get_wait_objs(tbus *objs, int *count, int *timeout)
|
||||
{
|
||||
LLOGLN(0, ("scard_pcsc_get_wait_objs"));
|
||||
LLOGLN(10, ("scard_pcsc_get_wait_objs"));
|
||||
if (g_lis != 0)
|
||||
{
|
||||
trans_get_wait_objs(g_lis, objs, count);
|
||||
|
@ -104,7 +104,7 @@ scard_pcsc_get_wait_objs(tbus *objs, int *count, int *timeout)
|
|||
int APP_CC
|
||||
scard_pcsc_check_wait_objs(void)
|
||||
{
|
||||
LLOGLN(0, ("scard_pcsc_check_wait_objs"));
|
||||
LLOGLN(10, ("scard_pcsc_check_wait_objs"));
|
||||
if (g_lis != 0)
|
||||
{
|
||||
trans_check_wait_objs(g_lis);
|
||||
|
@ -123,7 +123,7 @@ scard_process_establish_context(struct trans *con, struct stream *in_s)
|
|||
{
|
||||
int dwScope;
|
||||
|
||||
LLOGLN(0, ("scard_process_establish_context:"));
|
||||
LLOGLN(10, ("scard_process_establish_context:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_EC)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_establish_context: opps"));
|
||||
|
@ -131,7 +131,7 @@ scard_process_establish_context(struct trans *con, struct stream *in_s)
|
|||
}
|
||||
g_xrdp_pcsc_state |= XRDP_PCSC_STATE_GOT_EC;
|
||||
in_uint32_le(in_s, dwScope);
|
||||
LLOGLN(0, ("scard_process_establish_context: dwScope 0x%8.8x", dwScope));
|
||||
LLOGLN(10, ("scard_process_establish_context: dwScope 0x%8.8x", dwScope));
|
||||
scard_send_establish_context(con, dwScope);
|
||||
return 0;
|
||||
}
|
||||
|
@ -148,7 +148,7 @@ scard_function_establish_context_return(struct trans *con,
|
|||
tui32 context_len;
|
||||
struct stream *out_s;
|
||||
|
||||
LLOGLN(0, ("scard_function_establish_context_return:"));
|
||||
LLOGLN(10, ("scard_function_establish_context_return:"));
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_EC) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_establish_context_return: opps"));
|
||||
|
@ -163,7 +163,7 @@ scard_function_establish_context_return(struct trans *con,
|
|||
return 1;
|
||||
}
|
||||
in_uint32_le(in_s, context);
|
||||
LLOGLN(0, ("scard_function_establish_context_return: context 0x%8.8x", context));
|
||||
LLOGLN(10, ("scard_function_establish_context_return: context 0x%8.8x", context));
|
||||
out_s = trans_get_out_s(con, 8192);
|
||||
s_push_layer(out_s, iso_hdr, 8);
|
||||
out_uint32_le(out_s, context);
|
||||
|
@ -183,7 +183,7 @@ scard_process_release_context(struct trans *con, struct stream *in_s)
|
|||
{
|
||||
int hContext;
|
||||
|
||||
LLOGLN(0, ("scard_process_release_context:"));
|
||||
LLOGLN(10, ("scard_process_release_context:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_RC)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_establish_context: opps"));
|
||||
|
@ -191,7 +191,7 @@ scard_process_release_context(struct trans *con, struct stream *in_s)
|
|||
}
|
||||
g_xrdp_pcsc_state |= XRDP_PCSC_STATE_GOT_RC;
|
||||
in_uint32_le(in_s, hContext);
|
||||
LLOGLN(0, ("scard_process_release_context: hContext 0x%8.8x", hContext));
|
||||
LLOGLN(10, ("scard_process_release_context: hContext 0x%8.8x", hContext));
|
||||
scard_send_release_context(con, hContext);
|
||||
return 0;
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ scard_function_release_context_return(struct trans *con,
|
|||
int bytes;
|
||||
struct stream *out_s;
|
||||
|
||||
LLOGLN(0, ("scard_function_release_context_return:"));
|
||||
LLOGLN(10, ("scard_function_release_context_return:"));
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_RC) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_release_context_return: opps"));
|
||||
|
@ -231,7 +231,7 @@ scard_process_list_readers(struct trans *con, struct stream *in_s)
|
|||
{
|
||||
int hContext;
|
||||
|
||||
LLOGLN(0, ("scard_process_list_readers:"));
|
||||
LLOGLN(10, ("scard_process_list_readers:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_LR)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_list_readers: opps"));
|
||||
|
@ -239,7 +239,7 @@ scard_process_list_readers(struct trans *con, struct stream *in_s)
|
|||
}
|
||||
g_xrdp_pcsc_state |= XRDP_PCSC_STATE_GOT_LR;
|
||||
in_uint32_le(in_s, hContext);
|
||||
LLOGLN(0, ("scard_process_list_readers: dwScope 0x%8.8x", hContext));
|
||||
LLOGLN(10, ("scard_process_list_readers: dwScope 0x%8.8x", hContext));
|
||||
scard_send_list_readers(con, hContext, 1);
|
||||
return 0;
|
||||
}
|
||||
|
@ -260,10 +260,10 @@ scard_function_list_readers_return(struct trans *con,
|
|||
char lreader_name[16][100];
|
||||
|
||||
LLOGLN(10, ("scard_function_list_readers_return:"));
|
||||
g_hexdump(in_s->p, len);
|
||||
//g_hexdump(in_s->p, len);
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_LR) == 0)
|
||||
{
|
||||
LLOGLN(10, ("scard_function_list_readers_return: opps"));
|
||||
LLOGLN(0, ("scard_function_list_readers_return: opps"));
|
||||
return 1;
|
||||
}
|
||||
g_xrdp_pcsc_state &= ~XRDP_PCSC_STATE_GOT_LR;
|
||||
|
@ -273,7 +273,7 @@ scard_function_list_readers_return(struct trans *con,
|
|||
in_uint8s(in_s, 28);
|
||||
len -= 28;
|
||||
in_uint32_le(in_s, len);
|
||||
g_writeln("len %d", len);
|
||||
//g_writeln("len %d", len);
|
||||
rn_index = 0;
|
||||
readers = 0;
|
||||
while (len > 0)
|
||||
|
@ -285,7 +285,7 @@ scard_function_list_readers_return(struct trans *con,
|
|||
if (reader_name[0] != 0)
|
||||
{
|
||||
g_wcstombs(lreader_name[readers], reader_name, 99);
|
||||
g_writeln("1 %s", lreader_name[readers]);
|
||||
//g_writeln("1 %s", lreader_name[readers]);
|
||||
g_memset(reader_name, 0, sizeof(reader_name));
|
||||
readers++;
|
||||
}
|
||||
|
@ -303,7 +303,7 @@ scard_function_list_readers_return(struct trans *con,
|
|||
if (reader_name[0] != 0)
|
||||
{
|
||||
g_wcstombs(lreader_name[readers], reader_name, 99);
|
||||
g_writeln("2 %s", lreader_name[readers]);
|
||||
//g_writeln("2 %s", lreader_name[readers]);
|
||||
g_memset(reader_name, 0, sizeof(reader_name));
|
||||
readers++;
|
||||
}
|
||||
|
@ -314,7 +314,7 @@ scard_function_list_readers_return(struct trans *con,
|
|||
out_uint32_le(out_s, readers);
|
||||
for (index = 0; index < readers; index++)
|
||||
{
|
||||
g_writeln("3 - %s", lreader_name[index]);
|
||||
//g_writeln("3 - %s", lreader_name[index]);
|
||||
out_uint8a(out_s, lreader_name[index], 100);
|
||||
}
|
||||
out_uint32_le(out_s, 0); /* SCARD_S_SUCCESS status */
|
||||
|
@ -334,7 +334,7 @@ scard_process_connect(struct trans *con, struct stream *in_s)
|
|||
int hContext;
|
||||
READER_STATE rs;
|
||||
|
||||
LLOGLN(0, ("scard_process_connect:"));
|
||||
LLOGLN(10, ("scard_process_connect:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_C)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_connect: opps"));
|
||||
|
@ -346,7 +346,7 @@ scard_process_connect(struct trans *con, struct stream *in_s)
|
|||
in_uint8a(in_s, rs.reader_name, 100);
|
||||
in_uint32_le(in_s, rs.dwShareMode);
|
||||
in_uint32_le(in_s, rs.dwPreferredProtocols);
|
||||
LLOGLN(0, ("scard_process_connect: rs.reader_name %s dwShareMode 0x%8.8x "
|
||||
LLOGLN(10, ("scard_process_connect: rs.reader_name %s dwShareMode 0x%8.8x "
|
||||
"dwPreferredProtocols 0x%8.8x", rs.reader_name, rs.dwShareMode,
|
||||
rs.dwPreferredProtocols));
|
||||
scard_send_connect(con, hContext, 1, &rs);
|
||||
|
@ -364,7 +364,7 @@ scard_function_connect_return(struct trans *con,
|
|||
int bytes;
|
||||
struct stream *out_s;
|
||||
|
||||
g_hexdump(in_s->p, len);
|
||||
//g_hexdump(in_s->p, len);
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_C) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_connect_return: opps"));
|
||||
|
@ -375,7 +375,7 @@ scard_function_connect_return(struct trans *con,
|
|||
in_uint32_le(in_s, dwActiveProtocol);
|
||||
in_uint8s(in_s, 4);
|
||||
in_uint32_le(in_s, hCard);
|
||||
LLOGLN(0, ("scard_function_connect_return: hCard %d dwActiveProtocol %d", hCard, dwActiveProtocol));
|
||||
LLOGLN(10, ("scard_function_connect_return: hCard %d dwActiveProtocol %d", hCard, dwActiveProtocol));
|
||||
out_s = trans_get_out_s(con, 8192);
|
||||
s_push_layer(out_s, iso_hdr, 8);
|
||||
out_uint32_le(out_s, hCard);
|
||||
|
@ -398,7 +398,7 @@ scard_process_disconnect(struct trans *con, struct stream *in_s)
|
|||
int hCard;
|
||||
int dwDisposition;
|
||||
|
||||
LLOGLN(0, ("scard_process_disconnect:"));
|
||||
LLOGLN(10, ("scard_process_disconnect:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_D)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_disconnect: opps"));
|
||||
|
@ -426,7 +426,7 @@ scard_function_disconnect_return(struct trans *con,
|
|||
int bytes;
|
||||
struct stream *out_s;
|
||||
|
||||
g_hexdump(in_s->p, len);
|
||||
//g_hexdump(in_s->p, len);
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_D) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_connect_return: opps"));
|
||||
|
@ -437,7 +437,7 @@ scard_function_disconnect_return(struct trans *con,
|
|||
in_uint32_le(in_s, dwActiveProtocol);
|
||||
in_uint8s(in_s, 4);
|
||||
in_uint32_le(in_s, hCard);
|
||||
LLOGLN(0, ("scard_function_connect_return: hCard %d dwActiveProtocol %d", hCard, dwActiveProtocol));
|
||||
LLOGLN(10, ("scard_function_connect_return: hCard %d dwActiveProtocol %d", hCard, dwActiveProtocol));
|
||||
out_s = trans_get_out_s(con, 8192);
|
||||
s_push_layer(out_s, iso_hdr, 8);
|
||||
out_uint32_le(out_s, 0); /* SCARD_S_SUCCESS status */
|
||||
|
@ -456,7 +456,7 @@ scard_process_begin_transaction(struct trans *con, struct stream *in_s)
|
|||
{
|
||||
int hCard;
|
||||
|
||||
LLOGLN(0, ("scard_process_begin_transaction:"));
|
||||
LLOGLN(10, ("scard_process_begin_transaction:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_BT)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_begin_transaction: opps"));
|
||||
|
@ -464,7 +464,7 @@ scard_process_begin_transaction(struct trans *con, struct stream *in_s)
|
|||
}
|
||||
g_xrdp_pcsc_state |= XRDP_PCSC_STATE_GOT_BT;
|
||||
in_uint32_le(in_s, hCard);
|
||||
LLOGLN(0, ("scard_process_begin_transaction: hCard 0x%8.8x", hCard));
|
||||
LLOGLN(10, ("scard_process_begin_transaction: hCard 0x%8.8x", hCard));
|
||||
scard_send_begin_transaction(con, hCard);
|
||||
return 0;
|
||||
}
|
||||
|
@ -479,7 +479,7 @@ scard_function_begin_transaction_return(struct trans *con,
|
|||
struct stream *out_s;
|
||||
int bytes;
|
||||
|
||||
g_hexdump(in_s->p, len);
|
||||
//g_hexdump(in_s->p, len);
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_BT) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_begin_transaction_return: opps"));
|
||||
|
@ -506,7 +506,7 @@ scard_process_end_transaction(struct trans *con, struct stream *in_s)
|
|||
int hCard;
|
||||
int dwDisposition;
|
||||
|
||||
LLOGLN(0, ("scard_process_end_transaction:"));
|
||||
LLOGLN(10, ("scard_process_end_transaction:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_ET)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_end_transaction: opps"));
|
||||
|
@ -515,7 +515,7 @@ scard_process_end_transaction(struct trans *con, struct stream *in_s)
|
|||
g_xrdp_pcsc_state |= XRDP_PCSC_STATE_GOT_ET;
|
||||
in_uint32_le(in_s, hCard);
|
||||
in_uint32_le(in_s, dwDisposition);
|
||||
LLOGLN(0, ("scard_process_end_transaction: hCard 0x%8.8x", hCard));
|
||||
LLOGLN(10, ("scard_process_end_transaction: hCard 0x%8.8x", hCard));
|
||||
scard_send_end_transaction(con, hCard, dwDisposition);
|
||||
return 0;
|
||||
}
|
||||
|
@ -530,7 +530,7 @@ scard_function_end_transaction_return(struct trans *con,
|
|||
struct stream *out_s;
|
||||
int bytes;
|
||||
|
||||
g_hexdump(in_s->p, len);
|
||||
//g_hexdump(in_s->p, len);
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_ET) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_end_transaction_return: opps"));
|
||||
|
@ -581,14 +581,14 @@ scard_process_transmit(struct trans *con, struct stream *in_s)
|
|||
struct xrdp_scard_io_request send_ior;
|
||||
struct xrdp_scard_io_request recv_ior;
|
||||
|
||||
LLOGLN(0, ("scard_process_transmit:"));
|
||||
LLOGLN(10, ("scard_process_transmit:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_TR)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_transmit: opps"));
|
||||
return 1;
|
||||
}
|
||||
g_xrdp_pcsc_state |= XRDP_PCSC_STATE_GOT_TR;
|
||||
LLOGLN(0, ("scard_process_transmit:"));
|
||||
LLOGLN(10, ("scard_process_transmit:"));
|
||||
in_uint32_le(in_s, hCard);
|
||||
in_uint32_le(in_s, send_ior.dwProtocol);
|
||||
in_uint32_le(in_s, send_ior.cbPciLength);
|
||||
|
@ -601,12 +601,12 @@ scard_process_transmit(struct trans *con, struct stream *in_s)
|
|||
in_uint32_le(in_s, recv_ior.extra_bytes);
|
||||
in_uint8p(in_s, recv_ior.extra_data, recv_ior.extra_bytes);
|
||||
in_uint32_le(in_s, recv_bytes);
|
||||
LLOGLN(0, ("scard_process_transmit: send dwProtocol %d cbPciLength %d "
|
||||
LLOGLN(10, ("scard_process_transmit: send dwProtocol %d cbPciLength %d "
|
||||
"recv dwProtocol %d cbPciLength %d send_bytes %d ",
|
||||
send_ior.dwProtocol, send_ior.cbPciLength, recv_ior.dwProtocol,
|
||||
recv_ior.cbPciLength, send_bytes));
|
||||
g_hexdump(in_s->p, send_bytes);
|
||||
LLOGLN(0, ("scard_process_transmit: recv_bytes %d", recv_bytes));
|
||||
//g_hexdump(in_s->p, send_bytes);
|
||||
LLOGLN(10, ("scard_process_transmit: recv_bytes %d", recv_bytes));
|
||||
scard_send_transmit(con, hCard, send_data, send_bytes, recv_bytes,
|
||||
&send_ior, &recv_ior);
|
||||
return 0;
|
||||
|
@ -626,8 +626,8 @@ scard_function_transmit_return(struct trans *con,
|
|||
struct xrdp_scard_io_request recv_ior;
|
||||
char *recvBuf;
|
||||
|
||||
LLOGLN(0, ("scard_function_transmit_return:"));
|
||||
g_hexdump(in_s->p, len);
|
||||
LLOGLN(10, ("scard_function_transmit_return:"));
|
||||
//g_hexdump(in_s->p, len);
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_TR) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_transmit_return: opps"));
|
||||
|
@ -652,7 +652,7 @@ scard_function_transmit_return(struct trans *con,
|
|||
in_uint32_le(in_s, cbRecvLength);
|
||||
in_uint8p(in_s, recvBuf, cbRecvLength);
|
||||
}
|
||||
LLOGLN(0, ("scard_function_transmit_return: cbRecvLength %d", cbRecvLength));
|
||||
LLOGLN(10, ("scard_function_transmit_return: cbRecvLength %d", cbRecvLength));
|
||||
out_s = trans_get_out_s(con, 8192);
|
||||
s_push_layer(out_s, iso_hdr, 8);
|
||||
out_uint32_le(out_s, recv_ior.dwProtocol);
|
||||
|
@ -682,14 +682,14 @@ scard_process_control(struct trans *con, struct stream *in_s)
|
|||
int control_code;
|
||||
char *send_data;
|
||||
|
||||
LLOGLN(0, ("scard_process_control:"));
|
||||
LLOGLN(10, ("scard_process_control:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_CO)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_control: opps"));
|
||||
return 1;
|
||||
}
|
||||
g_xrdp_pcsc_state |= XRDP_PCSC_STATE_GOT_CO;
|
||||
LLOGLN(0, ("scard_process_control:"));
|
||||
LLOGLN(10, ("scard_process_control:"));
|
||||
|
||||
in_uint32_le(in_s, hCard);
|
||||
in_uint32_le(in_s, control_code);
|
||||
|
@ -717,7 +717,7 @@ scard_function_control_return(struct trans *con,
|
|||
int cbRecvLength;
|
||||
char *recvBuf;
|
||||
|
||||
g_hexdump(in_s->p, len);
|
||||
//g_hexdump(in_s->p, len);
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_CO) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_control_return: opps"));
|
||||
|
@ -729,7 +729,7 @@ scard_function_control_return(struct trans *con,
|
|||
in_uint32_le(in_s, cbRecvLength);
|
||||
in_uint8p(in_s, recvBuf, cbRecvLength);
|
||||
|
||||
LLOGLN(0, ("scard_function_control_return: cbRecvLength %d", cbRecvLength));
|
||||
LLOGLN(10, ("scard_function_control_return: cbRecvLength %d", cbRecvLength));
|
||||
out_s = trans_get_out_s(con, 8192);
|
||||
s_push_layer(out_s, iso_hdr, 8);
|
||||
out_uint32_le(out_s, cbRecvLength);
|
||||
|
@ -752,14 +752,13 @@ scard_process_status(struct trans *con, struct stream *in_s)
|
|||
int cchReaderLen;
|
||||
int cbAtrLen;
|
||||
|
||||
LLOGLN(0, ("scard_process_status:"));
|
||||
LLOGLN(10, ("scard_process_status:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_ST)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_control: opps"));
|
||||
LLOGLN(0, ("scard_process_status: opps"));
|
||||
return 1;
|
||||
}
|
||||
g_xrdp_pcsc_state |= XRDP_PCSC_STATE_GOT_ST;
|
||||
LLOGLN(0, ("scard_process_control:"));
|
||||
|
||||
in_uint32_le(in_s, hCard);
|
||||
in_uint32_le(in_s, cchReaderLen);
|
||||
|
@ -809,7 +808,7 @@ scard_function_status_return(struct trans *con,
|
|||
twchar reader_name[100];
|
||||
char lreader_name[100];
|
||||
|
||||
g_hexdump(in_s->p, len);
|
||||
//g_hexdump(in_s->p, len);
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_ST) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_status_return: opps"));
|
||||
|
@ -833,7 +832,7 @@ scard_function_status_return(struct trans *con,
|
|||
in_uint16_le(in_s, reader_name[index]);
|
||||
}
|
||||
g_wcstombs(lreader_name, reader_name, 99);
|
||||
LLOGLN(0, ("scard_function_status_return: dwAtrLen %d dwReaderLen %d "
|
||||
LLOGLN(10, ("scard_function_status_return: dwAtrLen %d dwReaderLen %d "
|
||||
"dwProtocol %d dwState %d name %s",
|
||||
dwAtrLen, dwReaderLen, dwProtocol, dwState, lreader_name));
|
||||
out_s = trans_get_out_s(con, 8192);
|
||||
|
@ -865,7 +864,7 @@ scard_process_get_status_change(struct trans *con, struct stream *in_s)
|
|||
int cReaders;
|
||||
READER_STATE *rsa;
|
||||
|
||||
LLOGLN(0, ("scard_process_get_status_change:"));
|
||||
LLOGLN(10, ("scard_process_get_status_change:"));
|
||||
if (g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_GSC)
|
||||
{
|
||||
LLOGLN(0, ("scard_process_get_status_change: opps"));
|
||||
|
@ -898,7 +897,7 @@ scard_process_get_status_change(struct trans *con, struct stream *in_s)
|
|||
in_uint8a(in_s, rsa[index].atr, 36);
|
||||
}
|
||||
|
||||
LLOGLN(0, ("scard_process_get_status_change: hContext 0x%8.8x dwTimeout "
|
||||
LLOGLN(10, ("scard_process_get_status_change: hContext 0x%8.8x dwTimeout "
|
||||
"%d cReaders %d", hContext, dwTimeout, cReaders));
|
||||
|
||||
g_xrdp_pcsc_state |= XRDP_PCSC_STATE_GOT_GSC;
|
||||
|
@ -925,8 +924,8 @@ scard_function_get_status_change_return(struct trans *con,
|
|||
tui8 atr[36];
|
||||
struct stream *out_s;
|
||||
|
||||
LLOGLN(0, ("scard_function_get_status_change_return:"));
|
||||
g_hexdump(in_s->p, len);
|
||||
LLOGLN(10, ("scard_function_get_status_change_return:"));
|
||||
//g_hexdump(in_s->p, len);
|
||||
if ((g_xrdp_pcsc_state & XRDP_PCSC_STATE_GOT_GSC) == 0)
|
||||
{
|
||||
LLOGLN(0, ("scard_function_establish_context_return: opps"));
|
||||
|
@ -988,26 +987,26 @@ scard_process_msg(struct trans *con, struct stream *in_s, int command)
|
|||
{
|
||||
int rv;
|
||||
|
||||
LLOGLN(0, ("scard_process_msg: command 0x%4.4x", command));
|
||||
LLOGLN(10, ("scard_process_msg: command 0x%4.4x", command));
|
||||
rv = 0;
|
||||
switch (command)
|
||||
{
|
||||
case 0x01: /* SCARD_ESTABLISH_CONTEXT */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_ESTABLISH_CONTEXT"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_ESTABLISH_CONTEXT"));
|
||||
rv = scard_process_establish_context(con, in_s);
|
||||
break;
|
||||
case 0x02: /* SCARD_RELEASE_CONTEXT */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_RELEASE_CONTEXT"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_RELEASE_CONTEXT"));
|
||||
rv = scard_process_release_context(con, in_s);
|
||||
break;
|
||||
|
||||
case 0x03: /* SCARD_LIST_READERS */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_LIST_READERS"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_LIST_READERS"));
|
||||
rv = scard_process_list_readers(con, in_s);
|
||||
break;
|
||||
|
||||
case 0x04: /* SCARD_CONNECT */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_CONNECT"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_CONNECT"));
|
||||
rv = scard_process_connect(con, in_s);
|
||||
break;
|
||||
|
||||
|
@ -1016,37 +1015,37 @@ scard_process_msg(struct trans *con, struct stream *in_s, int command)
|
|||
break;
|
||||
|
||||
case 0x06: /* SCARD_DISCONNECT */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_DISCONNECT"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_DISCONNECT"));
|
||||
rv = scard_process_disconnect(con, in_s);
|
||||
break;
|
||||
|
||||
case 0x07: /* SCARD_BEGIN_TRANSACTION */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_BEGIN_TRANSACTION"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_BEGIN_TRANSACTION"));
|
||||
rv = scard_process_begin_transaction(con, in_s);
|
||||
break;
|
||||
|
||||
case 0x08: /* SCARD_END_TRANSACTION */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_END_TRANSACTION"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_END_TRANSACTION"));
|
||||
rv = scard_process_end_transaction(con, in_s);
|
||||
break;
|
||||
|
||||
case 0x09: /* SCARD_TRANSMIT */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_TRANSMIT"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_TRANSMIT"));
|
||||
rv = scard_process_transmit(con, in_s);
|
||||
break;
|
||||
|
||||
case 0x0A: /* SCARD_CONTROL */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_CONTROL"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_CONTROL"));
|
||||
rv = scard_process_control(con, in_s);
|
||||
break;
|
||||
|
||||
case 0x0B: /* SCARD_STATUS */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_STATUS"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_STATUS"));
|
||||
rv = scard_process_status(con, in_s);
|
||||
break;
|
||||
|
||||
case 0x0C: /* SCARD_GET_STATUS_CHANGE */
|
||||
LLOGLN(0, ("scard_process_msg: SCARD_GET_STATUS_CHANGE"));
|
||||
LLOGLN(10, ("scard_process_msg: SCARD_GET_STATUS_CHANGE"));
|
||||
rv = scard_process_get_status_change(con, in_s);
|
||||
break;
|
||||
|
||||
|
@ -1084,7 +1083,7 @@ my_pcsc_trans_data_in(struct trans *trans)
|
|||
int command;
|
||||
int error;
|
||||
|
||||
LLOGLN(0, ("my_pcsc_trans_data_in:"));
|
||||
LLOGLN(10, ("my_pcsc_trans_data_in:"));
|
||||
if (trans == 0)
|
||||
{
|
||||
return 0;
|
||||
|
@ -1096,7 +1095,7 @@ my_pcsc_trans_data_in(struct trans *trans)
|
|||
s = trans_get_in_s(trans);
|
||||
in_uint32_le(s, size);
|
||||
in_uint32_le(s, command);
|
||||
LLOGLN(0, ("my_pcsc_trans_data_in: size %d command %d", size, command));
|
||||
LLOGLN(10, ("my_pcsc_trans_data_in: size %d command %d", size, command));
|
||||
error = trans_force_read(trans, size);
|
||||
if (error == 0)
|
||||
{
|
||||
|
@ -1110,7 +1109,7 @@ my_pcsc_trans_data_in(struct trans *trans)
|
|||
int DEFAULT_CC
|
||||
my_pcsc_trans_conn_in(struct trans *trans, struct trans *new_trans)
|
||||
{
|
||||
LLOGLN(0, ("my_pcsc_trans_conn_in:"));
|
||||
LLOGLN(10, ("my_pcsc_trans_conn_in:"));
|
||||
|
||||
if (trans == 0)
|
||||
{
|
||||
|
@ -1129,13 +1128,7 @@ my_pcsc_trans_conn_in(struct trans *trans, struct trans *new_trans)
|
|||
|
||||
g_con = new_trans;
|
||||
g_con->trans_data_in = my_pcsc_trans_data_in;
|
||||
#if 1
|
||||
g_con->header_size = 8;
|
||||
#else
|
||||
g_con->header_size = RXSHAREDSEGMENT_BYTES;
|
||||
LLOGLN(0, ("my_pcsc_trans_conn_in: sizeof sharedSegmentMsg is %d",
|
||||
sizeof(sharedSegmentMsg)));
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue