res_pjsip_pubsub: delete scheduled notification on RLS update

If there is scheduled notification, we must delete it
to avoid using destroyed subscriptions.

ASTERISK-29906

Change-Id: I1c644e5e15a8fe43eed8e4f9112f113cbf87a40f
This commit is contained in:
Alexei Gradinari 2022-06-06 18:21:24 -04:00 committed by Joshua Colp
parent 7480ebe9ea
commit 1c5f023af9
1 changed files with 6 additions and 0 deletions

View File

@ -4061,6 +4061,12 @@ static void pubsub_on_rx_refresh(pjsip_evsub *evsub, pjsip_rx_data *rdata,
new_root->version = old_root->version;
sub_tree->root = new_root;
sub_tree->generate_initial_notify = 1;
/* If there is scheduled notification need to delete it to avoid use old subscriptions */
if (sub_tree->notify_sched_id > -1) {
AST_SCHED_DEL_UNREF(sched, sub_tree->notify_sched_id, ao2_ref(sub_tree, -1));
sub_tree->send_scheduled_notify = 0;
}
shutdown_subscriptions(old_root);
destroy_subscriptions(old_root);
} else {