iso7816_4.c: GetChar returns status
diff --git a/sam3s_example/simtrace/cciddriver.c b/sam3s_example/simtrace/cciddriver.c
index 0084f27..0bba147 100644
--- a/sam3s_example/simtrace/cciddriver.c
+++ b/sam3s_example/simtrace/cciddriver.c
@@ -421,7 +421,8 @@
//------------------------------------------------------------------------------
static void PCtoRDRXfrBlock( void )
{
- unsigned char indexMessage = 0;
+ uint16_t msglen = 0;
+ uint32_t ret;
//TRACE_DEBUG(".");
@@ -447,9 +448,14 @@
TRACE_INFO("APDU cmd: %x %x %x ..", ccidDriver.sCcidCommand.APDU[0], ccidDriver.sCcidCommand.APDU[1],ccidDriver.sCcidCommand.APDU[2] );
// Send commande APDU
- indexMessage = ISO7816_XfrBlockTPDU_T0( ccidDriver.sCcidCommand.APDU ,
- ccidDriver.sCcidMessage.abData,
- ccidDriver.sCcidCommand.wLength );
+ ret = ISO7816_XfrBlockTPDU_T0( ccidDriver.sCcidCommand.APDU ,
+ ccidDriver.sCcidMessage.abData,
+ ccidDriver.sCcidCommand.wLength,
+ &msglen );
+ if (ret != 0) {
+ TRACE_ERROR("APDU could not be sent: (US_CSR = 0x%x)", ret);
+ return;
+ }
}
else {
if (ccidDriver.ProtocolDataStructure[1] == PROTOCOL_T1) {
@@ -471,7 +477,7 @@
}
- ccidDriver.sCcidMessage.wLength = indexMessage;
+ ccidDriver.sCcidMessage.wLength = msglen;
TRACE_DEBUG("USB: 0x%X, 0x%X, 0x%X, 0x%X, 0x%X\n\r", ccidDriver.sCcidMessage.abData[0],
ccidDriver.sCcidMessage.abData[1],
ccidDriver.sCcidMessage.abData[2],