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; -}