<p>neels <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/20352">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Vadim Yanitskiy: Looks good to me, approved
  laforge: Looks good to me, but someone else must approve
  pespin: Looks good to me, but someone else must approve

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc_subscr_name: print both IMSI and TMSI<br><br>Always use a format containing only osmo_identifier_valid() characters.<br><br>Change-Id: I6cdbaad2f0d0552f697440bf9a75bef36d59a597<br>---<br>M src/osmo-bsc/bsc_subscriber.c<br>M tests/subscr/bsc_subscr_test.c<br>M tests/subscr/bsc_subscr_test.err<br>3 files changed, 44 insertions(+), 37 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/bsc_subscriber.c b/src/osmo-bsc/bsc_subscriber.c</span><br><span>index 79d0c85..4a48298 100644</span><br><span>--- a/src/osmo-bsc/bsc_subscriber.c</span><br><span>+++ b/src/osmo-bsc/bsc_subscriber.c</span><br><span>@@ -51,7 +51,7 @@</span><br><span>   else</span><br><span>                 level = LOGL_DEBUG;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGPSRC(DREF, level, file, line, "BSC subscr %s: %s %s: now used by %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGPSRC(DREF, level, file, line, "%s: %s %s: now used by %s\n",</span><br><span>            bsc_subscr_name(bsub),</span><br><span>               (e->count - old_use_count) > 0? "+" : "-", e->use,</span><br><span>              osmo_use_count_to_str_c(OTC_SELECT, &bsub->use_count));</span><br><span>@@ -188,30 +188,36 @@</span><br><span>       }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static int bsc_subscr_name_buf(char *buf, size_t buflen, struct bsc_subscr *bsub)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      struct osmo_strbuf sb = { .buf = buf, .len = buflen };</span><br><span style="color: hsl(120, 100%, 40%);">+        OSMO_STRBUF_PRINTF(sb, "subscr");</span><br><span style="color: hsl(120, 100%, 40%);">+   if (!bsub) {</span><br><span style="color: hsl(120, 100%, 40%);">+          OSMO_STRBUF_PRINTF(sb, "-null");</span><br><span style="color: hsl(120, 100%, 40%);">+            return sb.chars_needed;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bsub->imsi[0])</span><br><span style="color: hsl(120, 100%, 40%);">+         OSMO_STRBUF_PRINTF(sb, "-IMSI-%s", bsub->imsi);</span><br><span style="color: hsl(120, 100%, 40%);">+  if (bsub->tmsi != GSM_RESERVED_TMSI)</span><br><span style="color: hsl(120, 100%, 40%);">+               OSMO_STRBUF_PRINTF(sb, "-TMSI-0x%08x", bsub->tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+      return sb.chars_needed;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static char *bsc_subscr_name_c(void *ctx, struct bsc_subscr *bsub)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   OSMO_NAME_C_IMPL(ctx, 64, "ERROR", bsc_subscr_name_buf, bsub)</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> const char *bsc_subscr_name(struct bsc_subscr *bsub)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       static char buf[32];</span><br><span style="color: hsl(0, 100%, 40%);">-    if (!bsub)</span><br><span style="color: hsl(0, 100%, 40%);">-              return "unknown";</span><br><span style="color: hsl(0, 100%, 40%);">-     if (bsub->imsi[0])</span><br><span style="color: hsl(0, 100%, 40%);">-           snprintf(buf, sizeof(buf), "IMSI:%s", bsub->imsi);</span><br><span style="color: hsl(0, 100%, 40%);">- else</span><br><span style="color: hsl(0, 100%, 40%);">-            snprintf(buf, sizeof(buf), "TMSI:0x%08x", bsub->tmsi);</span><br><span style="color: hsl(0, 100%, 40%);">-     return buf;</span><br><span style="color: hsl(120, 100%, 40%);">+   return bsc_subscr_name_c(OTC_SELECT, bsub);</span><br><span> }</span><br><span> </span><br><span> /* Like bsc_subscr_name() but returns only characters approved by osmo_identifier_valid(), useful for</span><br><span>  * osmo_fsm_inst IDs. */</span><br><span> const char *bsc_subscr_id(struct bsc_subscr *bsub)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    static char buf[32];</span><br><span style="color: hsl(0, 100%, 40%);">-    if (!bsub)</span><br><span style="color: hsl(0, 100%, 40%);">-              return "unknown";</span><br><span style="color: hsl(0, 100%, 40%);">-     if (bsub->imsi[0])</span><br><span style="color: hsl(0, 100%, 40%);">-           snprintf(buf, sizeof(buf), "IMSI%s", bsub->imsi);</span><br><span style="color: hsl(0, 100%, 40%);">-  else</span><br><span style="color: hsl(0, 100%, 40%);">-            snprintf(buf, sizeof(buf), "TMSI%08x", bsub->tmsi);</span><br><span style="color: hsl(0, 100%, 40%);">-        return buf;</span><br><span style="color: hsl(120, 100%, 40%);">+   return bsc_subscr_name(bsub);</span><br><span> }</span><br><span> </span><br><span> static void bsc_subscr_free(struct bsc_subscr *bsub)</span><br><span>diff --git a/tests/subscr/bsc_subscr_test.c b/tests/subscr/bsc_subscr_test.c</span><br><span>index fcaea63..619d5e6 100644</span><br><span>--- a/tests/subscr/bsc_subscr_test.c</span><br><span>+++ b/tests/subscr/bsc_subscr_test.c</span><br><span>@@ -75,6 +75,7 @@</span><br><span> </span><br><span>  /* Allocate entry 2 */</span><br><span>       s2 = bsc_subscr_find_or_create_by_imsi(bsc_subscribers, imsi2, BSUB_USE);</span><br><span style="color: hsl(120, 100%, 40%);">+     s2->tmsi = 0x73517351;</span><br><span>    VERBOSE_ASSERT(llist_count(bsc_subscribers), == 2, "%d");</span><br><span> </span><br><span>      /* Allocate entry 3 */</span><br><span>diff --git a/tests/subscr/bsc_subscr_test.err b/tests/subscr/bsc_subscr_test.err</span><br><span>index a78e757..c41d3ca 100644</span><br><span>--- a/tests/subscr/bsc_subscr_test.err</span><br><span>+++ b/tests/subscr/bsc_subscr_test.err</span><br><span>@@ -1,20 +1,20 @@</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:1234567890: + test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:1234567890: + test: now used by 2 (2*test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:1234567890: - test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:9876543210: + test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:5656565656: + test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:1234567890: + test: now used by 2 (2*test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:1234567890: - test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:9876543210: + test: now used by 2 (2*test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:9876543210: - test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:5656565656: + test: now used by 2 (2*test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:5656565656: - test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:1234567890: - test: now used by 0 (-)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:9876543210: + test: now used by 2 (2*test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:9876543210: - test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:5656565656: + test: now used by 2 (2*test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:5656565656: - test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:9876543210: - test: now used by 0 (-)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:5656565656: + test: now used by 2 (2*test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:5656565656: - test: now used by 1 (test)</span><br><span style="color: hsl(0, 100%, 40%);">-DREF BSC subscr IMSI:5656565656: - test: now used by 0 (-)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-1234567890: + test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-1234567890: + test: now used by 2 (2*test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-1234567890: - test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-9876543210: + test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-5656565656: + test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-1234567890: + test: now used by 2 (2*test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-1234567890: - test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-9876543210-TMSI-0x73517351: + test: now used by 2 (2*test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-9876543210-TMSI-0x73517351: - test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-5656565656: + test: now used by 2 (2*test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-5656565656: - test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-1234567890: - test: now used by 0 (-)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-9876543210-TMSI-0x73517351: + test: now used by 2 (2*test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-9876543210-TMSI-0x73517351: - test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-5656565656: + test: now used by 2 (2*test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-5656565656: - test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-9876543210-TMSI-0x73517351: - test: now used by 0 (-)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-5656565656: + test: now used by 2 (2*test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-5656565656: - test: now used by 1 (test)</span><br><span style="color: hsl(120, 100%, 40%);">+DREF subscr-IMSI-5656565656: - test: now used by 0 (-)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/20352">change 20352</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/osmo-bsc/+/20352"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I6cdbaad2f0d0552f697440bf9a75bef36d59a597 </div>
<div style="display:none"> Gerrit-Change-Number: 20352 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: Vadim Yanitskiy <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>