mirror of git://git.sysmocom.de/ofono
Add ability to expire PLMN wide messages
This commit is contained in:
parent
8d52353425
commit
40ef883fe4
|
@ -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;
|
||||
|
|
|
@ -488,7 +488,7 @@ struct cbs_assembly *cbs_assembly_new();
|
|||
void cbs_assembly_free(struct cbs_assembly *assembly);
|
||||
GSList *cbs_assembly_add_page(struct cbs_assembly *assembly,
|
||||
const struct cbs *cbs);
|
||||
void cbs_assembly_location_changed(struct cbs_assembly *assembly,
|
||||
void cbs_assembly_location_changed(struct cbs_assembly *assembly, gboolean plmn,
|
||||
gboolean lac, gboolean ci);
|
||||
|
||||
char *cbs_topic_ranges_to_string(GSList *ranges);
|
||||
|
|
|
@ -966,7 +966,7 @@ static void test_cbs_assembly()
|
|||
l = cbs_assembly_add_page(assembly, &dec1);
|
||||
g_assert(l == NULL);
|
||||
|
||||
cbs_assembly_location_changed(assembly, TRUE, TRUE);
|
||||
cbs_assembly_location_changed(assembly, TRUE, TRUE, TRUE);
|
||||
g_assert(assembly->recv_cell == NULL);
|
||||
|
||||
dec1.update_number = 9;
|
||||
|
|
Loading…
Reference in New Issue