diff options
Diffstat (limited to 'src/osmo-bsc/bsc_subscriber.c')
-rw-r--r-- | src/osmo-bsc/bsc_subscriber.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/osmo-bsc/bsc_subscriber.c b/src/osmo-bsc/bsc_subscriber.c index 65a660b40..2541883d5 100644 --- a/src/osmo-bsc/bsc_subscriber.c +++ b/src/osmo-bsc/bsc_subscriber.c @@ -118,6 +118,20 @@ const char *bsc_subscr_name(struct bsc_subscr *bsub) return buf; } +/* Like bsc_subscr_name() but returns only characters approved by osmo_identifier_valid(), useful for + * osmo_fsm_inst IDs. */ +const char *bsc_subscr_id(struct bsc_subscr *bsub) +{ + static char buf[32]; + if (!bsub) + return "unknown"; + if (bsub->imsi[0]) + snprintf(buf, sizeof(buf), "IMSI%s", bsub->imsi); + else + snprintf(buf, sizeof(buf), "TMSI%08x", bsub->tmsi); + return buf; +} + static void bsc_subscr_free(struct bsc_subscr *bsub) { llist_del(&bsub->entry); |