pySim-shell: Create/delete RuntimeLchan objects on open/close of channel

We already have the open channel and close_channel commands in
pySim-shell. They are sent to the card and acknowledged, respectively.

We also already do have code that can track multiple different logical
channels (the rs.lchan array).  However, this is currently only used by
pySim-trace, and not by pySim-shell.  Let's change that.

Change-Id: Idacee2dc57e8afe85c79bc85b259064e7f5b83a2
Related: OS#6230
This commit is contained in:
Harald Welte 2023-10-21 20:06:19 +02:00
parent 7997252267
commit bdf595756e
1 changed files with 4 additions and 0 deletions

View File

@ -948,6 +948,8 @@ class Iso7816Commands(CommandSet):
"""Open a logical channel."""
(data, sw) = self._cmd.card._scc.manage_channel(
mode='open', lchan_nr=opts.chan_nr)
# this is executed only in successful case, as unsuccessful raises exception
self._cmd.lchan.add_lchan(opts.chan_nr)
close_chan_parser = argparse.ArgumentParser()
close_chan_parser.add_argument(
@ -958,6 +960,8 @@ class Iso7816Commands(CommandSet):
"""Close a logical channel."""
(data, sw) = self._cmd.card._scc.manage_channel(
mode='close', lchan_nr=opts.chan_nr)
# this is executed only in successful case, as unsuccessful raises exception
self._cmd.rs.del_lchan(opts.chan_nr)
def do_status(self, opts):
"""Perform the STATUS command."""