<p><a href="https://gerrit.osmocom.org/12524">View Change</a></p><p>2 comments:</p><ul style="list-style: none; padding: 0;"><li style="margin: 0; padding: 0;"><p><a href="https://gerrit.osmocom.org/#/c/12524/3/src/gsm/gsm23003.c">File src/gsm/gsm23003.c:</a></p><ul style="list-style: none; padding: 0;"><li style="margin: 0; padding: 0 0 0 16px;"><p style="margin-bottom: 4px;"><a href="https://gerrit.osmocom.org/#/c/12524/3/src/gsm/gsm23003.c@83">Patch Set #3, Line 83:</a> <code style="font-family:monospace,monospace">bool</code></p><p style="white-space: pre-wrap; word-wrap: break-word;">I think it may be interesting to the caller *why* it failed validation.  So a simple bool value may be too simple.  Maybe return negative error codes and 0 on success?  Then the negative error codes could have an enum or #defines differentiating the cause.</p></li><li style="margin: 0; padding: 0 0 0 16px;"><p style="margin-bottom: 4px;"><a href="https://gerrit.osmocom.org/#/c/12524/3/src/gsm/gsm23003.c@93">Patch Set #3, Line 93:</a> </p><p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;"><pre style="font-family: monospace,monospace; white-space: pre-wrap;">       /* Verify Luhn algorithm (see Wikipedia)<br>       * digit id (i)  | 00 01 02 03 04 05 06 07 08 09 10 11 12 13 CHK<br>       * double        |     x     x     x     x     x     x     x<br>   * do not double |  x     x     x     x     x     x     x<br>         */<br><br>      /* Double every second digit and add it to sum */<br>     for (i = 1; i < 14; i += 2) {<br>              int check = 2 * (imei[i] - '0');<br>              if (check > 9)<br>                     check -= 9;<br>           sum += check;<br> }<br></pre></blockquote></p><p style="white-space: pre-wrap; word-wrap: break-word;">the IMEI checksumming function should definitely be a separate function, as it may be useful in other purposes.</p><p style="white-space: pre-wrap; word-wrap: break-word;">The osmo_imei_str_valid could then simply call that checksum-generation function and do the compare.</p></li></ul></li></ul><p>To view, visit <a href="https://gerrit.osmocom.org/12524">change 12524</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/12524"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: comment </div>
<div style="display:none"> Gerrit-Change-Id: Id2d2a3a93b033bafc74c62e15297034bf4aafe61 </div>
<div style="display:none"> Gerrit-Change-Number: 12524 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Max <msuraev@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Comment-Date: Mon, 14 Jan 2019 12:52:12 +0000 </div>
<div style="display:none"> Gerrit-HasComments: Yes </div>
<div style="display:none"> Gerrit-HasLabels: No </div>