MT#55283 support bidirectional unsubscribe

Change-Id: Icf367a2ce80b9d5d5d6017d4f53a49cf09ae70f5
pull/2090/head
Richard Fuchs 1 month ago
parent b170b2a825
commit fd992d5324

@ -4619,7 +4619,6 @@ int monologue_unsubscribe(struct call_monologue *dst_ml, struct call_monologue *
__media_unconfirm(media, "media unsubscribe");
/* TODO: should we care about subscribers as well? */
IQUEUE_FOREACH_SAFE(&media->media_subscriptions, ms) {
if (src_ml && ms->monologue != src_ml)
continue;
@ -4631,6 +4630,19 @@ int monologue_unsubscribe(struct call_monologue *dst_ml, struct call_monologue *
update_init_subscribers(src_media, NULL, NULL, flags->opmode);
}
if (flags->bidirectional) {
IQUEUE_FOREACH_SAFE(&media->media_subscribers, ms) {
if (src_ml && ms->monologue != src_ml)
continue;
struct call_media *src_media = ms->media;
__media_unconfirm(src_media, "media unsubscribe");
__unsubscribe_media_link(src_media, ms->reverse);
update_init_subscribers(src_media, NULL, NULL, flags->opmode);
}
}
update_init_subscribers(media, NULL, NULL, flags->opmode);
}

Loading…
Cancel
Save