<p>osmith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/12524">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gsm23003: add osmo_imei_str_valid()<br><br>To be used by OsmoHLR to check IMEIs before writing them to the DB.<br><br>Related: OS#2541<br>Change-Id: Id2d2a3a93b033bafc74c62e15297034bf4aafe61<br>---<br>M include/osmocom/gsm/gsm23003.h<br>M src/gsm/gsm23003.c<br>M src/gsm/libosmogsm.map<br>3 files changed, 14 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/12524/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/gsm/gsm23003.h b/include/osmocom/gsm/gsm23003.h</span><br><span>index 2f380ae..d21c8d5 100644</span><br><span>--- a/include/osmocom/gsm/gsm23003.h</span><br><span>+++ b/include/osmocom/gsm/gsm23003.h</span><br><span>@@ -93,6 +93,7 @@</span><br><span> </span><br><span> bool osmo_imsi_str_valid(const char *imsi);</span><br><span> bool osmo_msisdn_str_valid(const char *msisdn);</span><br><span style="color: hsl(120, 100%, 40%);">+bool osmo_imei_str_valid(const char *imei);</span><br><span> </span><br><span> const char *osmo_mcc_name(uint16_t mcc);</span><br><span> const char *osmo_mnc_name(uint16_t mnc, bool mnc_3_digits);</span><br><span>diff --git a/src/gsm/gsm23003.c b/src/gsm/gsm23003.c</span><br><span>index 4fdad48..74d0de2 100644</span><br><span>--- a/src/gsm/gsm23003.c</span><br><span>+++ b/src/gsm/gsm23003.c</span><br><span>@@ -71,6 +71,18 @@</span><br><span>  return is_n_digits(msisdn, 1, 15);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/*! Determine whether the given IMEI is valid according to 3GPP TS 23.003,</span><br><span style="color: hsl(120, 100%, 40%);">+ * Section 6.2.1. It consists of 14 digits, the 15th check digit is not</span><br><span style="color: hsl(120, 100%, 40%);">+ * intended for digital transmission.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \param imei  IMEI digits in ASCII string representation.</span><br><span style="color: hsl(120, 100%, 40%);">+ * \returns true when the IMEI is valid, false for invalid characters or number</span><br><span style="color: hsl(120, 100%, 40%);">+ *          of digits.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+bool osmo_imei_str_valid(const char *imei)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     return is_n_digits(imei, 14, 14);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! Return MCC string as standardized 3-digit with leading zeros.</span><br><span>  * \param[in] mcc  MCC value.</span><br><span>  * \returns string in static buffer.</span><br><span>diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map</span><br><span>index cdcbcc9..dbac69b 100644</span><br><span>--- a/src/gsm/libosmogsm.map</span><br><span>+++ b/src/gsm/libosmogsm.map</span><br><span>@@ -534,6 +534,7 @@</span><br><span> </span><br><span> osmo_imsi_str_valid;</span><br><span> osmo_msisdn_str_valid;</span><br><span style="color: hsl(120, 100%, 40%);">+osmo_imei_str_valid;</span><br><span> </span><br><span> osmo_mncc_stringify;</span><br><span> osmo_mncc_names;</span><br><span></span><br></pre><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: newchange </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: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>