Stream_Read_UINT32(s, call->fpbRecvBufferIsNULL); /* fpbRecvBufferIsNULL (4 bytes) */
Stream_Read_UINT32(s, call->cbRecvLength); /* cbRecvLength (4 bytes) */
+ if (pioRecvPciNdrPtr)
+ {
+ WLog_WARN(TAG, "Transmit_Call with pioRecvPci:");
+ winpr_HexDump(TAG, WLOG_WARN, Stream_Pointer(s) - 32,
+ Stream_GetRemainingLength(s) + 32);
+ }
+
if (ioSendPci.cbExtraBytes > 1024)
{
WLog_WARN(TAG, "Transmit_Call ioSendPci.cbExtraBytes is out of bounds: %d (max: %d)",
int PCSC_InitializeSCardApi(void)
{
+ DWORD nSize;
+ char* env = NULL;
+
+ nSize = GetEnvironmentVariableA("WINPR_WINSCARD_LOCK_TRANSACTIONS", NULL, 0);
+
+ if (nSize)
+ {
+ env = (LPSTR) malloc(nSize);
+ nSize = GetEnvironmentVariableA("WINPR_WINSCARD_LOCK_TRANSACTIONS", env, nSize);
+
+ if (strcmp(env, "1") == 0)
+ g_LockTransactions = TRUE;
+ else if (strcmp(env, "0") == 0)
+ g_LockTransactions = FALSE;
+
+ free(env);
+ }
+
/* Disable pcsc-lite's (poor) blocking so we can handle it ourselves */
SetEnvironmentVariableA("PCSCLITE_NO_BLOCKING", "1");
+
#ifndef DISABLE_PCSC_LINK
if (PCSC_InitializeSCardApi_Link() >= 0)
pos += trio_snprintf(&buffer[pos], blen - pos, "%c",
(p[i] >= 0x20 && p[i] < 0x7F) ? p[i] : '.');
- pos += trio_snprintf(&buffer[pos], blen - pos, "\n");
WLog_LVL(tag, level, "%s", buffer);
offset += line;
p += line;