[Pcsclite-cvs-commit] r6802 - trunk/PCSC/src
ludovic.rousseau at free.fr
ludovic.rousseau at free.fr
Mon Dec 2 10:37:22 UTC 2013
Author: rousseau
Date: 2013-12-02 10:37:22 +0000 (Mon, 02 Dec 2013)
New Revision: 6802
Modified:
trunk/PCSC/src/dyn_generic.h
trunk/PCSC/src/dyn_hpux.c
trunk/PCSC/src/dyn_macosx.c
trunk/PCSC/src/dyn_unix.c
trunk/PCSC/src/readerfactory.c
Log:
Do not log a critical error if symbol IFDHCreateChannelByName is not
found in a driver.
Drivers using API v2 of IFDHandler (like openct-ifd.bundle) do not
provide a IFDHCreateChannelByName symbol. A critical error should not be
logged since it is a normal behavior.
DYN_GetAddress() has a new parameter: mayfail, to indicate if dlsym(3)
may fail or not.
Modified: trunk/PCSC/src/dyn_generic.h
===================================================================
--- trunk/PCSC/src/dyn_generic.h 2013-11-26 14:14:49 UTC (rev 6801)
+++ trunk/PCSC/src/dyn_generic.h 2013-12-02 10:37:22 UTC (rev 6802)
@@ -19,6 +19,6 @@
int DYN_LoadLibrary(void **, char *);
int DYN_CloseLibrary(void **);
- int DYN_GetAddress(void *, /*@out@*/ void **, const char *);
+ int DYN_GetAddress(void *, /*@out@*/ void **, const char *, int);
#endif
Modified: trunk/PCSC/src/dyn_hpux.c
===================================================================
--- trunk/PCSC/src/dyn_hpux.c 2013-11-26 14:14:49 UTC (rev 6801)
+++ trunk/PCSC/src/dyn_hpux.c 2013-12-02 10:37:22 UTC (rev 6802)
@@ -61,7 +61,8 @@
return SCARD_S_SUCCESS;
}
-int DYN_GetAddress(void *pvLHandle, void **pvFHandle, const char *pcFunction)
+int DYN_GetAddress(void *pvLHandle, void **pvFHandle, const char *pcFunction,
+ int mayfail)
{
int rv;
@@ -72,7 +73,8 @@
if (rv == -1)
{
- Log3(PCSC_LOG_ERROR, "%s: %s", pcFunction, strerror(errno));
+ Log3(mayfail ? PCSC_LOG_INFO : PCSC_LOG_ERROR, "%s: %s",
+ pcFunction, strerror(errno));
rv = SCARD_F_UNKNOWN_ERROR;
}
else
Modified: trunk/PCSC/src/dyn_macosx.c
===================================================================
--- trunk/PCSC/src/dyn_macosx.c 2013-11-26 14:14:49 UTC (rev 6801)
+++ trunk/PCSC/src/dyn_macosx.c 2013-12-02 10:37:22 UTC (rev 6802)
@@ -90,7 +90,8 @@
return SCARD_S_SUCCESS;
}
-int DYN_GetAddress(void *pvLHandle, void **pvFHandle, const char *pcFunction)
+int DYN_GetAddress(void *pvLHandle, void **pvFHandle, const char *pcFunction,
+ int mayfail)
{
CFBundleRef bundle = (CFBundleRef) pvLHandle;
Modified: trunk/PCSC/src/dyn_unix.c
===================================================================
--- trunk/PCSC/src/dyn_unix.c 2013-11-26 14:14:49 UTC (rev 6801)
+++ trunk/PCSC/src/dyn_unix.c 2013-12-02 10:37:22 UTC (rev 6802)
@@ -60,7 +60,8 @@
return SCARD_S_SUCCESS;
}
-INTERNAL int DYN_GetAddress(void *pvLHandle, void **pvFHandle, const char *pcFunction)
+INTERNAL int DYN_GetAddress(void *pvLHandle, void **pvFHandle,
+ const char *pcFunction, int mayfail)
{
char pcFunctionName[256];
int rv = SCARD_S_SUCCESS;
@@ -78,7 +79,8 @@
if (*pvFHandle == NULL)
{
- Log3(PCSC_LOG_CRITICAL, "%s: %s", pcFunction, dlerror());
+ Log3(mayfail ? PCSC_LOG_INFO : PCSC_LOG_CRITICAL, "%s: %s",
+ pcFunction, dlerror());
rv = SCARD_F_UNKNOWN_ERROR;
}
#endif
Modified: trunk/PCSC/src/readerfactory.c
===================================================================
--- trunk/PCSC/src/readerfactory.c 2013-11-26 14:14:49 UTC (rev 6801)
+++ trunk/PCSC/src/readerfactory.c 2013-12-02 10:37:22 UTC (rev 6802)
@@ -798,7 +798,7 @@
int rv;
void *f;
- rv = DYN_GetAddress(rContext->vHandle, &f, "IFDHCreateChannelByName");
+ rv = DYN_GetAddress(rContext->vHandle, &f, "IFDHCreateChannelByName", TRUE);
if (SCARD_S_SUCCESS == rv)
{
/* Ifd Handler 3.0 found */
@@ -806,7 +806,7 @@
}
else
{
- rv = DYN_GetAddress(rContext->vHandle, &f, "IFDHCreateChannel");
+ rv = DYN_GetAddress(rContext->vHandle, &f, "IFDHCreateChannel", FALSE);
if (SCARD_S_SUCCESS == rv)
{
/* Ifd Handler 2.0 found */
@@ -826,7 +826,7 @@
#define GET_ADDRESS_OPTIONALv2(s, code) \
{ \
void *f1 = NULL; \
- int rvl = DYN_GetAddress(rContext->vHandle, &f1, "IFDH" #s); \
+ int rvl = DYN_GetAddress(rContext->vHandle, &f1, "IFDH" #s, FALSE); \
if (SCARD_S_SUCCESS != rvl) \
{ \
code \
@@ -858,7 +858,7 @@
#define GET_ADDRESS_OPTIONALv3(s, code) \
{ \
void *f1 = NULL; \
- int rvl = DYN_GetAddress(rContext->vHandle, &f1, "IFDH" #s); \
+ int rvl = DYN_GetAddress(rContext->vHandle, &f1, "IFDH" #s, FALSE); \
if (SCARD_S_SUCCESS != rvl) \
{ \
code \
More information about the Pcsclite-cvs-commit
mailing list