summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/src/mobile/subscriber.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/host/layer23/src/mobile/subscriber.c')
-rw-r--r--src/host/layer23/src/mobile/subscriber.c15
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;