From 938d09730b9080ece8ad2160aa331b0ce56824d8 Mon Sep 17 00:00:00 2001 From: frankmorgner Date: Sun, 10 Oct 2010 16:20:09 +0000 Subject: [PATCH] fixed problems for workaround of pcscd bug 312749 git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@314 96b47cad-a561-4643-ad3b-153ac7d7599c --- virtualsmartcard/src/vpcd/ifd.c | 43 ++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/virtualsmartcard/src/vpcd/ifd.c b/virtualsmartcard/src/vpcd/ifd.c index 75f3525..ca1daa5 100644 --- a/virtualsmartcard/src/vpcd/ifd.c +++ b/virtualsmartcard/src/vpcd/ifd.c @@ -2,7 +2,11 @@ #include #include + +/* XXX see bug #312749 on https://alioth.debian.org/projects/pcsclite/ */ +/*#define IFDHANDLERv2*/ #include + #include #include "vpcd.h" @@ -19,14 +23,37 @@ IFDHCreateChannel (DWORD Lun, DWORD Channel) return IFD_SUCCESS; } -/* XXX see bug #312749 on https://alioth.debian.org/projects/pcsclite/ */ -#if 0 +#ifndef IFDHANDLERv2 RESPONSECODE IFDHCreateChannelByName (DWORD Lun, LPSTR DeviceName) { Log3(PCSC_LOG_INFO, "Not opening %s. Using default port %hu", DeviceName, VPCDPORT); return IFDHCreateChannel (Lun, VPCDPORT); } + +RESPONSECODE +IFDHControl (DWORD Lun, DWORD dwControlCode, PUCHAR TxBuffer, DWORD TxLength, + PUCHAR RxBuffer, DWORD RxLength, LPDWORD pdwBytesReturned) +{ + Log9(PCSC_LOG_DEBUG, "IFDHControl not supported (Lun=%u ControlCode=%u TxBuffer=%p TxLength=%u RxBuffer=%p RxLength=%u pBytesReturned=%p)%s", + (unsigned int) Lun, (unsigned int) dwControlCode, + (unsigned char *) TxBuffer, (unsigned int) TxLength, + (unsigned char *) RxBuffer, (unsigned int) RxLength, + (unsigned int *) pdwBytesReturned, ""); + return IFD_ERROR_NOT_SUPPORTED; +} +#else +RESPONSECODE +IFDHControl(DWORD Lun, PUCHAR TxBuffer, DWORD TxLength, PUCHAR RxBuffer, + PDWORD RxLength) +{ + Log9(PCSC_LOG_DEBUG, "IFDHControl not supported (Lun=%u%s TxBuffer=%p TxLength=%u RxBuffer=%p RxLength=%u%s)%s", + (unsigned int) Lun, "", + (unsigned char *) TxBuffer, (unsigned int) TxLength, + (unsigned char *) RxBuffer, (unsigned int) RxLength, + "", ""); + return IFD_ERROR_NOT_SUPPORTED; +} #endif RESPONSECODE @@ -188,15 +215,3 @@ IFDHICCPresence (DWORD Lun) return IFD_COMMUNICATION_ERROR; } } - -RESPONSECODE -IFDHControl (DWORD Lun, DWORD dwControlCode, PUCHAR TxBuffer, DWORD TxLength, - PUCHAR RxBuffer, DWORD RxLength, LPDWORD pdwBytesReturned) -{ - Log9(PCSC_LOG_DEBUG, "IFDHControl not supported (Lun=%u ControlCode=%u TxBuffer=%p TxLength=%u RxBuffer=%p RxLength=%u pBytesReturned=%p)%s", - (unsigned int) Lun, (unsigned int) dwControlCode, - (unsigned char *) TxBuffer, (unsigned int) TxLength, - (unsigned char *) RxBuffer, (unsigned int) RxLength, - (unsigned int *) pdwBytesReturned, ""); - return IFD_ERROR_NOT_SUPPORTED; -}