From 2ef0e7828c9d4387e31024afe31089814808e7ca Mon Sep 17 00:00:00 2001 From: Frank Morgner Date: Mon, 18 May 2015 07:14:19 +0200 Subject: [PATCH] let user configure the number of slots --- virtualsmartcard/configure.ac | 13 ++++++++++++- virtualsmartcard/src/ifd-vpcd/ifd-vpcd.c | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/virtualsmartcard/configure.ac b/virtualsmartcard/configure.ac index a3b3347..82f3c25 100644 --- a/virtualsmartcard/configure.ac +++ b/virtualsmartcard/configure.ac @@ -134,7 +134,7 @@ fi # --enable-vpcdhost AC_ARG_ENABLE(vpcdhost, - AC_HELP_STRING([--enable-vpcdhost=ADRESS],[Default address to connect to when + AC_HELP_STRING([--enable-vpcdhost=ADDRESS],[Default address to connect to when communicating with vicc. Use "/dev/null" if vpcd shall open the socket and wait for an incoming connection. @<:@default=/dev/null@:>@]), @@ -147,6 +147,16 @@ else fi +# --enable-vpcdslots +AC_ARG_ENABLE(vpcdslots, + AC_HELP_STRING([--enable-vpcdslots=COUNT],[Default number of slots to open. + vpcd will open one socket for each slot incrementing the + port number each time. @<:@default=2@:>@]), + [vpcdslots="${enableval}"], [vpcdslots=2]) +AC_SUBST(vpcdslots) +AC_DEFINE_UNQUOTED(VPCDSLOTS, ${vpcdslots}, [number of vpcd slots]) + + HAVE_QRENCODE=yes PKG_CHECK_EXISTS([libqrencode], [PKG_CHECK_MODULES([QRENCODE], [libqrencode])], @@ -240,6 +250,7 @@ Build libpcsclite: ${libpcsclite} Build Info.plist: ${infoplist} Build reader.conf: ${readerconf} VPCD hostname: ${vpcdhost} +VPCD slot count: ${vpcdslots} Host: ${host} diff --git a/virtualsmartcard/src/ifd-vpcd/ifd-vpcd.c b/virtualsmartcard/src/ifd-vpcd/ifd-vpcd.c index c055016..dae505c 100644 --- a/virtualsmartcard/src/ifd-vpcd/ifd-vpcd.c +++ b/virtualsmartcard/src/ifd-vpcd/ifd-vpcd.c @@ -33,7 +33,7 @@ /* pcscd allows at most 16 readers. Apple's SmartCardServices on OS X 10.10 * freaks out if more than 8 slots are registered. We want only two slots... */ -#define VICC_MAX_SLOTS (2 <= PCSCLITE_MAX_READERS_CONTEXTS ? 2 : PCSCLITE_MAX_READERS_CONTEXTS) +#define VICC_MAX_SLOTS (VPCDSLOTS <= PCSCLITE_MAX_READERS_CONTEXTS ? VPCDSLOTS : PCSCLITE_MAX_READERS_CONTEXTS) const unsigned char vicc_max_slots = VICC_MAX_SLOTS; #ifdef HAVE_DEBUGLOG_H