X-Git-Url: https://git.ucc.asn.au/?p=uccvend-vendserver.git;a=blobdiff_plain;f=sql-edition%2Fservers%2FMIFAREDriver.py;h=46a073192d48ae97a53c5ee3f658136f987bc9c5;hp=a3a65b6797dd6744f4baae08b74c3bce1b01baa6;hb=08a392617c464e6336d47ba37168c3a3a2529123;hpb=07137a6ba9397180f6edb5b61a74bb6c18746811;ds=sidebyside diff --git a/sql-edition/servers/MIFAREDriver.py b/sql-edition/servers/MIFAREDriver.py index a3a65b6..46a0731 100644 --- a/sql-edition/servers/MIFAREDriver.py +++ b/sql-edition/servers/MIFAREDriver.py @@ -7,7 +7,7 @@ Requires Python 2.5. Licensed under an MIT-style license: see LICENSE file for details. ''' -import serial +import serial, logging xor = lambda x, y: x ^ y def checksum(string): @@ -111,7 +111,12 @@ class MIFAREReader: serial = self.send_packet(command)[3:] # Select the card for use - capacity = ord(self.send_packet('\x03\x02' + serial)[3]) + try: + select_response = self.send_packet('\x03\x02' + serial) + capacity = ord(select_response[3]) + except IndexError: + logging.warning('Tried to select card but failed: card_type %s, serial %s, select_response %s' % (card_type.__repr__(), serial.__repr__(), select_response.__repr__())) + capacity = 0 return (serial, capacity) def sector_login(self, blockvect, key, keytype=0):