From 5262f5a813dd4fcd8510a88151af45aeb02b2cf9 Mon Sep 17 00:00:00 2001 From: frankmorgner Date: Sat, 9 Oct 2010 20:32:53 +0000 Subject: [PATCH] now reading the port to open from reader.conf git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@310 96b47cad-a561-4643-ad3b-153ac7d7599c --- virtualsmartcard/src/vpcd/ifd.c | 8 ++++---- virtualsmartcard/src/vpcd/reader.conf.in | 2 +- virtualsmartcard/src/vpcd/vpcd.c | 6 +++--- virtualsmartcard/src/vpcd/vpcd.h | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/virtualsmartcard/src/vpcd/ifd.c b/virtualsmartcard/src/vpcd/ifd.c index b06bb6e..2e98577 100644 --- a/virtualsmartcard/src/vpcd/ifd.c +++ b/virtualsmartcard/src/vpcd/ifd.c @@ -10,7 +10,7 @@ RESPONSECODE IFDHCreateChannel (DWORD Lun, DWORD Channel) { - if (vicc_init() < 0) { + if (vicc_init(Channel) < 0) { Log1(PCSC_LOG_ERROR, "Could not initialize connection to virtual ICC"); return IFD_COMMUNICATION_ERROR; } @@ -21,13 +21,13 @@ IFDHCreateChannel (DWORD Lun, DWORD Channel) RESPONSECODE IFDHCreateChannelByName (DWORD Lun, LPSTR DeviceName) { - return IFDHCreateChannel (Lun, 0); + Log2(PCSC_LOG_INFO, "Using default port %hu", VPCDPORT); + return IFDHCreateChannel (Lun, VPCDPORT); } RESPONSECODE IFDHCloseChannel (DWORD Lun) { - Log1(PCSC_LOG_DEBUG, ""); RESPONSECODE r = vicc_eject(); if (vicc_exit() < 0) { Log1(PCSC_LOG_ERROR, "Could not close connection to virtual ICC"); @@ -173,7 +173,7 @@ IFDHICCPresence (DWORD Lun) case 1: return IFD_ICC_PRESENT; default: - Log1(PCSC_LOG_DEBUG, "Could not get ICC state"); + Log1(PCSC_LOG_ERROR, "Could not get ICC state"); return IFD_COMMUNICATION_ERROR; } } diff --git a/virtualsmartcard/src/vpcd/reader.conf.in b/virtualsmartcard/src/vpcd/reader.conf.in index bf15d39..c381522 100644 --- a/virtualsmartcard/src/vpcd/reader.conf.in +++ b/virtualsmartcard/src/vpcd/reader.conf.in @@ -1,4 +1,4 @@ FRIENDLYNAME "Virtual PCD" DEVICENAME /dev/null LIBPATH TARGET -CHANNELID 0 +CHANNELID 35963 diff --git a/virtualsmartcard/src/vpcd/vpcd.c b/virtualsmartcard/src/vpcd/vpcd.c index 023661e..4d045c3 100644 --- a/virtualsmartcard/src/vpcd/vpcd.c +++ b/virtualsmartcard/src/vpcd/vpcd.c @@ -78,7 +78,7 @@ int opensock(unsigned short port) struct sockaddr_in server_sockaddr; memset(&server_sockaddr, 0, sizeof(server_sockaddr)); server_sockaddr.sin_family = PF_INET; - server_sockaddr.sin_port = htons(VPCDPORT); + server_sockaddr.sin_port = htons(port); server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY); if (bind(sock, (struct sockaddr*)&server_sockaddr, @@ -165,8 +165,8 @@ int vicc_eject(void) { return 0; } -int vicc_init(void) { - server_sock = opensock(VPCDPORT); +int vicc_init(unsigned short port) { + server_sock = opensock(port); if (server_sock < 0) return -1; diff --git a/virtualsmartcard/src/vpcd/vpcd.h b/virtualsmartcard/src/vpcd/vpcd.h index 88d0b84..fa2a43b 100644 --- a/virtualsmartcard/src/vpcd/vpcd.h +++ b/virtualsmartcard/src/vpcd/vpcd.h @@ -46,7 +46,7 @@ int sendToVICC(uint16_t size, const char* buffer); int recvFromVICC(char** buffer); int vicc_eject(void); -int vicc_init(void); +int vicc_init(unsigned short port); int vicc_exit(void); int vicc_transmit(int apdu_len, const char *apdu, char **rapdu); int vicc_getatr(char** atr);