From 93998e95612b7d99eee9eff27466029f82e2851b Mon Sep 17 00:00:00 2001 From: alonbl Date: Wed, 28 Jan 2009 12:43:30 +0000 Subject: [PATCH] Optionally load SCardControl132 on apple git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@3642 c6295689-39f2-0310-b995-f0e70906c6a9 --- src/libopensc/reader-pcsc.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libopensc/reader-pcsc.c b/src/libopensc/reader-pcsc.c index 66538db1..7ab9d6c3 100644 --- a/src/libopensc/reader-pcsc.c +++ b/src/libopensc/reader-pcsc.c @@ -783,14 +783,17 @@ static int pcsc_init(sc_context_t *ctx, void **reader_data) gpriv->SCardListReaders = (SCardListReaders_t)lt_dlsym(gpriv->dlhandle, "SCardListReadersA"); /* If we have SCardGetAttrib it is correct API */ - if (lt_dlsym(gpriv->dlhandle, "SCardGetAttrib") != NULL) + if (lt_dlsym(gpriv->dlhandle, "SCardGetAttrib") != NULL) { #ifdef __APPLE__ gpriv->SCardControl = (SCardControl_t)lt_dlsym(gpriv->dlhandle, "SCardControl132"); -#else - gpriv->SCardControl = (SCardControl_t)lt_dlsym(gpriv->dlhandle, "SCardControl"); #endif - else + if (gpriv->SCardControl == NULL) { + gpriv->SCardControl = (SCardControl_t)lt_dlsym(gpriv->dlhandle, "SCardControl"); + } + } + else { gpriv->SCardControlOLD = (SCardControlOLD_t)lt_dlsym(gpriv->dlhandle, "SCardControl"); + } if ( gpriv->SCardReleaseContext == NULL ||