[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