[Pcsclite-cvs-commit] r7038 - trunk/Drivers/ccid/src

ludovic.rousseau at free.fr ludovic.rousseau at free.fr
Sun Nov 9 20:27:05 UTC 2014


Author: rousseau
Date: 2014-11-09 20:27:05 +0000 (Sun, 09 Nov 2014)
New Revision: 7038

Modified:
   trunk/Drivers/ccid/src/ccid.c
   trunk/Drivers/ccid/src/ccid.h
   trunk/Drivers/ccid/src/commands.c
Log:
Add log_level parameter in ccid_error()

Some CCID errors are not always unexpected. This patch allows to change
the log level from PCSC_LOG_ERROR to something else.

See alioth bug [#314871] "commands.c:979:CmdEscape error on byte 10"
message
https://alioth.debian.org/tracker/index.php?func=detail&aid=314871&group_id=30105&atid=410086


Modified: trunk/Drivers/ccid/src/ccid.c
===================================================================
--- trunk/Drivers/ccid/src/ccid.c	2014-11-07 12:19:05 UTC (rev 7037)
+++ trunk/Drivers/ccid/src/ccid.c	2014-11-09 20:27:05 UTC (rev 7038)
@@ -511,7 +511,8 @@
  *					ccid_error
  *
  ****************************************************************************/
-void ccid_error(int error, const char *file, int line, const char *function)
+void ccid_error(int log_level, int error, const char *file, int line,
+	const char *function)
 {
 #ifndef NO_LOG
 	const char *text;
@@ -630,7 +631,7 @@
 			text = var_text;
 			break;
 	}
-	log_msg(PCSC_LOG_ERROR, "%s:%d:%s %s", file, line, function, text);
+	log_msg(log_level, "%s:%d:%s %s", file, line, function, text);
 #endif
 
 } /* ccid_error */

Modified: trunk/Drivers/ccid/src/ccid.h
===================================================================
--- trunk/Drivers/ccid/src/ccid.h	2014-11-07 12:19:05 UTC (rev 7037)
+++ trunk/Drivers/ccid/src/ccid.h	2014-11-09 20:27:05 UTC (rev 7038)
@@ -244,7 +244,8 @@
 
 int ccid_open_hack_pre(unsigned int reader_index);
 int ccid_open_hack_post(unsigned int reader_index);
-void ccid_error(int error, const char *file, int line, const char *function);
+void ccid_error(int log_level, int error, const char *file, int line,
+	const char *function);
 _ccid_descriptor *get_ccid_descriptor(unsigned int reader_index);
 
 /* convert a 4 byte integer in USB format into an int */

Modified: trunk/Drivers/ccid/src/commands.c
===================================================================
--- trunk/Drivers/ccid/src/commands.c	2014-11-07 12:19:05 UTC (rev 7037)
+++ trunk/Drivers/ccid/src/commands.c	2014-11-09 20:27:05 UTC (rev 7038)
@@ -178,7 +178,7 @@
 
 			/* Status Information? */
 			if (0x40 == tmp[0])
-				ccid_error(tmp[2], __FILE__, __LINE__, __FUNCTION__);
+				ccid_error(PCSC_LOG_ERROR, tmp[2], __FILE__, __LINE__, __FUNCTION__);
 			return IFD_COMMUNICATION_ERROR;
 		}
 
@@ -245,7 +245,7 @@
 
 	if (buffer[STATUS_OFFSET] & CCID_COMMAND_FAILED)
 	{
-		ccid_error(buffer[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
+		ccid_error(PCSC_LOG_ERROR, buffer[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
 
 		if (0xBB == buffer[ERROR_OFFSET] &&	/* Protocol error in EMV mode */
 			((GEMPC433 == ccid_descriptor->readerID)
@@ -976,7 +976,7 @@
 
 	if (cmd_out[STATUS_OFFSET] & CCID_COMMAND_FAILED)
 	{
-		ccid_error(cmd_out[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
+		ccid_error(PCSC_LOG_ERROR, cmd_out[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
 		return_value = IFD_COMMUNICATION_ERROR;
 	}
 
@@ -1078,7 +1078,7 @@
 
 	if (cmd[STATUS_OFFSET] & CCID_COMMAND_FAILED)
 	{
-		ccid_error(cmd[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
+		ccid_error(PCSC_LOG_ERROR, cmd[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
 		return_value = IFD_COMMUNICATION_ERROR;
 	}
 
@@ -1199,7 +1199,7 @@
 		&& (buffer[ERROR_OFFSET] != 0xFE))
 	{
 		return_value = IFD_COMMUNICATION_ERROR;
-		ccid_error(buffer[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
+		ccid_error(PCSC_LOG_ERROR, buffer[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
 	}
 
 	return return_value;
@@ -1428,7 +1428,7 @@
 
 			case 0x40:
 				/* Status Information */
-				ccid_error(rx_buffer[2], __FILE__, __LINE__, __FUNCTION__);
+				ccid_error(PCSC_LOG_ERROR, rx_buffer[2], __FILE__, __LINE__, __FUNCTION__);
 				return IFD_COMMUNICATION_ERROR;
 
 			case 0x80:
@@ -1487,7 +1487,7 @@
 
 	if (cmd[STATUS_OFFSET] & CCID_COMMAND_FAILED)
 	{
-		ccid_error(cmd[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
+		ccid_error(PCSC_LOG_ERROR, cmd[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
 		switch (cmd[ERROR_OFFSET])
 		{
 			case 0xEF:	/* cancel */
@@ -2243,7 +2243,7 @@
 
 	if (cmd[STATUS_OFFSET] & CCID_COMMAND_FAILED)
 	{
-		ccid_error(cmd[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
+		ccid_error(PCSC_LOG_ERROR, cmd[ERROR_OFFSET], __FILE__, __LINE__, __FUNCTION__);    /* bError */
 		if (0x00 == cmd[ERROR_OFFSET])	/* command not supported */
 			return IFD_NOT_SUPPORTED;
 		else




More information about the Pcsclite-cvs-commit mailing list