diff options
-rwxr-xr-x | pySim-prog.py | 2 | ||||
-rwxr-xr-x | pySim-read.py | 2 | ||||
-rw-r--r-- | pySim/utils.py | 40 |
3 files changed, 26 insertions, 18 deletions
diff --git a/pySim-prog.py b/pySim-prog.py index cf503d0..fbf2b73 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -720,6 +720,8 @@ if __name__ == '__main__': # Init card reader driver sl = init_reader(opts) + if sl is None: + exit(1) # Create command layer scc = SimCardCommands(transport=sl) diff --git a/pySim-read.py b/pySim-read.py index f901260..7906685 100755 --- a/pySim-read.py +++ b/pySim-read.py @@ -82,6 +82,8 @@ if __name__ == '__main__': # Init card reader driver sl = init_reader(opts) + if sl is None: + exit(1) # Create command layer scc = SimCardCommands(transport=sl) diff --git a/pySim/utils.py b/pySim/utils.py index c150184..67bfa74 100644 --- a/pySim/utils.py +++ b/pySim/utils.py @@ -607,24 +607,28 @@ def init_reader(opts): """ Init card reader driver """ - if opts.pcsc_dev is not None: - print("Using PC/SC reader interface") - from pySim.transport.pcsc import PcscSimLink - sl = PcscSimLink(opts.pcsc_dev) - elif opts.osmocon_sock is not None: - print("Using Calypso-based (OsmocomBB) reader interface") - from pySim.transport.calypso import CalypsoSimLink - sl = CalypsoSimLink(sock_path=opts.osmocon_sock) - elif opts.modem_dev is not None: - print("Using modem for Generic SIM Access (3GPP TS 27.007)") - from pySim.transport.modem_atcmd import ModemATCommandLink - sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud) - else: # Serial reader is default - print("Using serial reader interface") - from pySim.transport.serial import SerialSimLink - sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate) - - return sl + try: + if opts.pcsc_dev is not None: + print("Using PC/SC reader interface") + from pySim.transport.pcsc import PcscSimLink + sl = PcscSimLink(opts.pcsc_dev) + elif opts.osmocon_sock is not None: + print("Using Calypso-based (OsmocomBB) reader interface") + from pySim.transport.calypso import CalypsoSimLink + sl = CalypsoSimLink(sock_path=opts.osmocon_sock) + elif opts.modem_dev is not None: + print("Using modem for Generic SIM Access (3GPP TS 27.007)") + from pySim.transport.modem_atcmd import ModemATCommandLink + sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud) + else: # Serial reader is default + print("Using serial reader interface") + from pySim.transport.serial import SerialSimLink + sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate) + return sl + except Exception as e: + print("Card reader initialization failed with exception:\n" + str(e)) + return None + def enc_ePDGSelection(hexstr, mcc, mnc, epdg_priority='0001', epdg_fqdn_format='00'): """ |