res_stasis: Don't unsubscribe from a NULL bridge.

A NULL bridge has special meaning in res_stasis for
unsubscribing. It means that a subscription to ALL
bridges should be removed. This should not be done
as part of the normal subscription management in
the res_stasis channel loop.

ASTERISK-26468

Change-Id: I6d5bea8246dd13a22ef86b736aefbf2a39c15af0
changes/35/4335/1
Joshua Colp 9 years ago
parent ec5b3972ff
commit cfede6a1fc

@ -1329,7 +1329,9 @@ int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc,
bridge = ao2_bump(stasis_app_get_bridge(control));
if (bridge != last_bridge) {
app_unsubscribe_bridge(app, last_bridge);
if (last_bridge) {
app_unsubscribe_bridge(app, last_bridge);
}
if (bridge) {
app_subscribe_bridge(app, bridge);
}
@ -1390,7 +1392,9 @@ int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc,
ast_bridge_depart(chan);
}
app_unsubscribe_bridge(app, stasis_app_get_bridge(control));
if (stasis_app_get_bridge(control)) {
app_unsubscribe_bridge(app, stasis_app_get_bridge(control));
}
ao2_cleanup(bridge);
/* Only publish a stasis_end event if it hasn't already been published */

Loading…
Cancel
Save