diff options
Diffstat (limited to 'src/host/layer23/src/mobile/subscriber.c')
-rw-r--r-- | src/host/layer23/src/mobile/subscriber.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/host/layer23/src/mobile/subscriber.c b/src/host/layer23/src/mobile/subscriber.c index 12310ecf..1ab2132e 100644 --- a/src/host/layer23/src/mobile/subscriber.c +++ b/src/host/layer23/src/mobile/subscriber.c @@ -1322,6 +1322,21 @@ int multi_imsi_spoof(struct osmocom_ms *ms, struct gsm_subscriber_creds *src) return 0; } +int multi_imsi_switch_imsi(struct osmocom_ms *ms, const char *imsi) +{ + struct gsm_subscriber_creds *imsi_entry; + struct gsm_settings *set = &ms->settings; + + llist_for_each_entry(imsi_entry, &set->multi_imsi_list, entry) { + if (!strcmp(imsi_entry->imsi, imsi)) { + multi_imsi_spoof(ms, imsi_entry); + return 0; + } + } + + return -1; +} + int multi_imsi_work(struct osmocom_ms *ms) { struct gsm_subscriber *subscr = &ms->subscr; |