From ae67d3e7593162227f334e93772912ac53ded4f8 Mon Sep 17 00:00:00 2001 From: Michael Gernoth Date: Wed, 1 Nov 2006 21:23:08 +0000 Subject: [PATCH] Add smartcard support for mac os x git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@1310 423420c4-83ab-492f-b58f-81f9feb106b5 --- configure.ac | 28 ++++++++++++++++++++-------- scard.c | 7 ++++++- scard.h | 1 - types.h | 4 ++++ 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 7a132b5..885cd9d 100644 --- a/configure.ac +++ b/configure.ac @@ -83,14 +83,26 @@ AC_ARG_ENABLE(smartcard, [ --enable-smartcard Enables smart-card support. ], [ - if test -n "$PKG_CONFIG"; then - PKG_CHECK_MODULES(PCSCLITE, libpcsclite, [WITH_SCARD=1], [WITH_SCARD=0]) - if test x"$WITH_SCARD" = "x1"; then - SCARDOBJ="scard.o" - CFLAGS="$CFLAGS $PCSCLITE_CFLAGS" - LIBS="$LIBS $PCSCLITE_LIBS" - AC_DEFINE(WITH_SCARD) - fi + case "$OSTYPE" in + darwin*) + AC_CHECK_HEADER(PCSC/pcsclite.h, [WITH_SCARD=1], [WITH_SCARD=0]) + AC_DEFINE(PCSC_OSX) + AC_DEFINE(WITH_PCSC120) + PCSCLITE_CFLAGS="" + PCSCLITE_LIBS="-framework PCSC" + ;; + *) + if test -n "$PKG_CONFIG"; then + PKG_CHECK_MODULES(PCSCLITE, libpcsclite, [WITH_SCARD=1], [WITH_SCARD=0]) + fi + ;; + esac + + if test x"$WITH_SCARD" = "x1"; then + SCARDOBJ="scard.o" + CFLAGS="$CFLAGS $PCSCLITE_CFLAGS" + LIBS="$LIBS $PCSCLITE_LIBS" + AC_DEFINE(WITH_SCARD) fi ]) diff --git a/scard.c b/scard.c index 591f95e..a276998 100644 --- a/scard.c +++ b/scard.c @@ -13,8 +13,13 @@ #include #include #ifndef MAKE_PROTO +#ifdef PCSC_OSX +#include +#include +#else #include #include +#endif /* PCSC_OSX */ #include "scard.h" /* variable segment */ @@ -2079,7 +2084,7 @@ TS_SCardControl(STREAM in, STREAM out) MYPCSC_SCARDHANDLE myHCard; SERVER_DWORD map[3]; SERVER_DWORD dwControlCode; - char *pInBuffer, *pOutBuffer; + unsigned char *pInBuffer, *pOutBuffer; SERVER_DWORD nInBufferSize, nOutBufferSize, nOutBufferRealSize, nBytesReturned; MYPCSC_DWORD sc_nBytesReturned; PMEM_HANDLE lcHandle = NULL; diff --git a/scard.h b/scard.h index a1444d3..8cef040 100644 --- a/scard.h +++ b/scard.h @@ -6,7 +6,6 @@ /************************************/ #include -#include #include "proto.h" /*************************************************************************/ diff --git a/types.h b/types.h index d4b32c7..039a56b 100644 --- a/types.h +++ b/types.h @@ -19,7 +19,11 @@ */ #ifdef WITH_SCARD +#ifdef PCSC_OSX +#include +#else #include +#endif /* PCSC_OSX */ #else typedef int BOOL; #endif