summaryrefslogtreecommitdiffstats
path: root/src/smsutil.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-09-10 17:40:16 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-09-10 17:40:16 -0500
commit40ef883fe4d1b27b46b5db2b36ce894d16a6d1d4 (patch)
treeb92aed3c0b211af1c6bf48dd66c4f9256c6fb9d6 /src/smsutil.c
parent8d52353425eb3dfa16900218400cc4f09c63da12 (diff)
downloadofono-40ef883fe4d1b27b46b5db2b36ce894d16a6d1d4.tar.bz2
Add ability to expire PLMN wide messages
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;