[Pcsclite-cvs-commit] r5947 - in /trunk/PCSC/src: pcsc-spy.c pcsc-spy.py

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Fri Sep 9 09:23:07 UTC 2011


Author: rousseau
Date: Fri Sep  9 09:23:07 2011
New Revision: 5947

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5947
Log:
Log SCardGetStatusChange() reader array

Modified:
    trunk/PCSC/src/pcsc-spy.c
    trunk/PCSC/src/pcsc-spy.py

Modified: trunk/PCSC/src/pcsc-spy.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/pcsc-spy.c?rev=5947&op=diff
==============================================================================
--- trunk/PCSC/src/pcsc-spy.c (original)
+++ trunk/PCSC/src/pcsc-spy.c Fri Sep  9 09:23:07 2011
@@ -189,14 +189,17 @@
 
 static void spy_buffer(const unsigned char *buffer, size_t length)
 {
-    char log_buffer[length * 3 +1], *p;
+    spy_long(length);
 
     if (NULL == buffer)
         spy_line("NULL");
     else
     {
+        char log_buffer[length * 3 +1], *p;
         size_t i;
+
         p = log_buffer;
+        log_buffer[0] = '\0';
         for (i=0; i<length; i++)
         {
             snprintf(p, 4, "%02X ", buffer[i]);
@@ -239,6 +242,23 @@
                 s += strlen(s)+1;
             } while(length < *len);
         }
+    }
+}
+
+
+static void spy_readerstate(SCARD_READERSTATE * rgReaderStates, int cReaders)
+{
+    int i;
+
+    for (i=0; i<cReaders; i++)
+    {
+        spy_str(rgReaderStates[i].szReader);
+        spy_long(rgReaderStates[i].dwCurrentState);
+        spy_long(rgReaderStates[i].dwEventState);
+        if (rgReaderStates[i].cbAtr <= MAX_ATR_SIZE)
+            spy_buffer(rgReaderStates[i].rgbAtr, rgReaderStates[i].cbAtr);
+        else
+            spy_buffer(NULL, rgReaderStates[i].cbAtr);
     }
 }
 
@@ -454,8 +474,10 @@
 	spy_long(hContext);
     spy_long(dwTimeout);
     spy_long(cReaders);
+    spy_readerstate(rgReaderStates, cReaders);
 	rv = spy.SCardGetStatusChange(hContext, dwTimeout, rgReaderStates,
 		cReaders);
+    spy_readerstate(rgReaderStates, cReaders);
 	Quit();
 	return rv;
 }

Modified: trunk/PCSC/src/pcsc-spy.py
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/pcsc-spy.py?rev=5947&op=diff
==============================================================================
--- trunk/PCSC/src/pcsc-spy.py (original)
+++ trunk/PCSC/src/pcsc-spy.py Fri Sep  9 09:23:07 2011
@@ -34,6 +34,9 @@
 
     def _parse_rv(self, line):
         """ parse the return value line """
+        if line == "":
+            raise Exception("Empty line (application exited?)")
+
         (function, rv) = line.split(':')
         if function[0] != '<':
             raise Exception("Wrong line:", line)
@@ -99,6 +102,17 @@
         """ log function name """
         print PCSCspy.color_blue + name + PCSCspy.color_normal
 
+    def _log_readers(self, readers, direction):
+        log = self.log_in2
+        if (direction == 1):
+            log = self.log_out2
+        for index in range(readers):
+            log("szReader:")
+            log(" dwCurrentState:")
+            log(" dwEventState:")
+            log(" Atr length:")
+            log(" Atr:")
+
     def _SCardEstablishContext(self):
         """ SCardEstablishContext """
         self.log_name("SCardEstablishContext")
@@ -143,7 +157,10 @@
         self.log_name("SCardGetStatusChange")
         self.log_in_hContext()
         self.log_in2("dwTimeout:")
-        self.log_in2("cReaders:")
+        readers = int(self.filedesc.readline().strip(), 16)
+        self.log_in("cReaders: %d" % readers)
+        self._log_readers(readers, direction = 0)
+        self._log_readers(readers, direction = 1)
         self._log_rv()
 
     def _SCardFreeMemory(self):




More information about the Pcsclite-cvs-commit mailing list