summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2017-04-19 15:27:58 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2017-04-19 15:27:58 +0700
commit716942df1d746efc1ce481cf0ac8c6ce278adc2e (patch)
tree018e2be98009a51ea7d10ba8534be90a5a2761dd
parent41d832a9a82a7dc7b899fb0859bce37a7df13a4d (diff)
mobile/multi-imsi: handle Periodic Location Update
-rw-r--r--src/host/layer23/src/mobile/gsm48_mm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_mm.c b/src/host/layer23/src/mobile/gsm48_mm.c
index a29f4643..5ca42bd8 100644
--- a/src/host/layer23/src/mobile/gsm48_mm.c
+++ b/src/host/layer23/src/mobile/gsm48_mm.c
@@ -349,6 +349,8 @@ static void timeout_mm_t3211(void *arg)
static void timeout_mm_t3212(void *arg)
{
struct gsm48_mmlayer *mm = arg;
+ struct gsm_subscriber_creds *creds_node;
+ struct gsm_settings *set = &mm->ms->settings;
LOGP(DSUM, LOGL_INFO, "Periodic location update\n");
LOGP(DMM, LOGL_INFO, "timer T3212 (periodic loc. upd. delay) has "
@@ -359,6 +361,10 @@ static void timeout_mm_t3212(void *arg)
&& mm->substate == GSM48_MM_SST_ATTEMPT_UPDATE)
mm->lupd_attempt = 0;
+ // Trigger LU for multi-imsi too
+ llist_for_each_entry(creds_node, &set->multi_imsi_list, entry)
+ creds_node->online = 0;
+
gsm48_mm_ev(mm->ms, GSM48_MM_EVENT_TIMEOUT_T3212, NULL);
}