summaryrefslogtreecommitdiffstats
path: root/src/smsutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/smsutil.c')
-rw-r--r--src/smsutil.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/smsutil.c b/src/smsutil.c
index 07ff903a..863b68f5 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -3297,7 +3297,7 @@ static void cbs_assembly_expire(struct cbs_assembly *assembly,
}
}
-void cbs_assembly_location_changed(struct cbs_assembly *assembly,
+void cbs_assembly_location_changed(struct cbs_assembly *assembly, gboolean plmn,
gboolean lac, gboolean ci)
{
/* Location Area wide (in GSM) (which means that a CBS message with the
@@ -3314,6 +3314,15 @@ void cbs_assembly_location_changed(struct cbs_assembly *assembly,
* one cell only.
*/
+ if (plmn) {
+ lac = TRUE;
+ g_slist_free(assembly->recv_plmn);
+ assembly->recv_plmn = NULL;
+
+ cbs_assembly_expire(assembly, cbs_compare_node_by_gs,
+ GUINT_TO_POINTER(CBS_GEO_SCOPE_PLMN));
+ }
+
if (lac) {
/* If LAC changed, then cell id has changed */
ci = TRUE;