diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-22 16:03:49 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-22 17:06:28 +0100 |
commit | 7a2f58ea63a777dcda1dd8ff1e7c2459ba2758c6 (patch) | |
tree | 8313887764e268b6851c4e2d5a64d089a16e6a40 /src/libvlr | |
parent | c01e90933fef6449f64db65a63590a6507bae34a (diff) |
dissolve libcommon: drop gsm_subscriber_base.c, move vlr_subscr_* to vlr.c
Change-Id: Ia69890da68b8afa8a2a4e8ab58ec5c4a4ba9d06a
Diffstat (limited to 'src/libvlr')
-rw-r--r-- | src/libvlr/vlr.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 01e7ee104..3e14593ad 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -76,6 +76,33 @@ uint32_t vlr_timer(struct vlr_instance *vlr, uint32_t timer) return vlr->cfg.timer[tidx]; } +/* return static buffer with printable name of VLR subscriber */ +const char *vlr_subscr_name(struct vlr_subscr *vsub) +{ + static char buf[32]; + if (!vsub) + return "unknown"; + if (vsub->msisdn[0]) + snprintf(buf, sizeof(buf), "MSISDN:%s", vsub->msisdn); + else if (vsub->imsi[0]) + snprintf(buf, sizeof(buf), "IMSI:%s", vsub->imsi); + else if (vsub->tmsi != GSM_RESERVED_TMSI) + snprintf(buf, sizeof(buf), "TMSI:0x%08x", vsub->tmsi); + else if (vsub->tmsi_new != GSM_RESERVED_TMSI) + snprintf(buf, sizeof(buf), "TMSI(new):0x%08x", vsub->tmsi_new); + else + return "unknown"; + buf[sizeof(buf)-1] = '\0'; + return buf; +} + +const char *vlr_subscr_msisdn_or_name(struct vlr_subscr *vsub) +{ + if (!vsub || !vsub->msisdn[0]) + return vlr_subscr_name(vsub); + return vsub->msisdn; +} + struct vlr_subscr *_vlr_subscr_find_by_imsi(struct vlr_instance *vlr, const char *imsi, const char *file, int line) |