<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/23171">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">move SW matching to a generic utility function<br><br>This will allow using it outside the transport/__init__.py<br><br>Change-Id: Id26dfefa85d91e3b3a23e0049f3b833e29cb1cef<br>---<br>M pySim/transport/__init__.py<br>M pySim/utils.py<br>2 files changed, 17 insertions(+), 10 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/71/23171/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py</span><br><span>index 27901d7..8ccb41b 100644</span><br><span>--- a/pySim/transport/__init__.py</span><br><span>+++ b/pySim/transport/__init__.py</span><br><span>@@ -4,6 +4,7 @@</span><br><span> """</span><br><span> </span><br><span> from pySim.exceptions import *</span><br><span style="color: hsl(120, 100%, 40%);">+from pySim.utils import sw_match</span><br><span> </span><br><span> #</span><br><span> # Copyright (C) 2009-2010  Sylvain Munaut <tnt@246tNt.com></span><br><span>@@ -93,14 +94,6 @@</span><br><span>               """</span><br><span>           rv = self.send_apdu(pdu)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-            # Create a masked version of the returned status word</span><br><span style="color: hsl(0, 100%, 40%);">-           sw_masked = ""</span><br><span style="color: hsl(0, 100%, 40%);">-                for i in range(0, 4):</span><br><span style="color: hsl(0, 100%, 40%);">-                   if sw.lower()[i] == '?':</span><br><span style="color: hsl(0, 100%, 40%);">-                                sw_masked = sw_masked + '?'</span><br><span style="color: hsl(0, 100%, 40%);">-                     else:</span><br><span style="color: hsl(0, 100%, 40%);">-                           sw_masked = sw_masked + rv[1][i].lower()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                if sw.lower() != sw_masked:</span><br><span style="color: hsl(0, 100%, 40%);">-                     raise SwMatchError(sw.lower(), rv[1])</span><br><span style="color: hsl(120, 100%, 40%);">+         if not sw_match(rv[1], pattern=sw):</span><br><span style="color: hsl(120, 100%, 40%);">+                   raise SwMatchError(rv[1], sw.lower())</span><br><span>                return rv</span><br><span>diff --git a/pySim/utils.py b/pySim/utils.py</span><br><span>index a733d87..915562f 100644</span><br><span>--- a/pySim/utils.py</span><br><span>+++ b/pySim/utils.py</span><br><span>@@ -759,3 +759,17 @@</span><br><span>                return 0x00</span><br><span> </span><br><span>      return None</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+def sw_match(sw, pattern):</span><br><span style="color: hsl(120, 100%, 40%);">+     """Match given SW against given pattern."""</span><br><span style="color: hsl(120, 100%, 40%);">+     # Create a masked version of the returned status word</span><br><span style="color: hsl(120, 100%, 40%);">+ sw_lower = sw.lower()</span><br><span style="color: hsl(120, 100%, 40%);">+ sw_masked = ""</span><br><span style="color: hsl(120, 100%, 40%);">+      for i in range(0, 4):</span><br><span style="color: hsl(120, 100%, 40%);">+         if sw_lower[i] == '?':</span><br><span style="color: hsl(120, 100%, 40%);">+                        sw_masked = sw_masked + '?'</span><br><span style="color: hsl(120, 100%, 40%);">+           elif sw_lower[i] == 'x':</span><br><span style="color: hsl(120, 100%, 40%);">+                      sw_masked = sw_masked + 'x'</span><br><span style="color: hsl(120, 100%, 40%);">+           else:</span><br><span style="color: hsl(120, 100%, 40%);">+                 sw_masked = sw_masked + sw_lower[i]</span><br><span style="color: hsl(120, 100%, 40%);">+   return sw == pattern</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/23171">change 23171</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/pysim/+/23171"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: pysim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Id26dfefa85d91e3b3a23e0049f3b833e29cb1cef </div>
<div style="display:none"> Gerrit-Change-Number: 23171 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>