mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 08:13:22 +00:00
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
This commit is contained in:
@@ -1327,7 +1327,9 @@ int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc,
|
|||||||
bridge = ao2_bump(stasis_app_get_bridge(control));
|
bridge = ao2_bump(stasis_app_get_bridge(control));
|
||||||
|
|
||||||
if (bridge != last_bridge) {
|
if (bridge != last_bridge) {
|
||||||
app_unsubscribe_bridge(app, last_bridge);
|
if (last_bridge) {
|
||||||
|
app_unsubscribe_bridge(app, last_bridge);
|
||||||
|
}
|
||||||
if (bridge) {
|
if (bridge) {
|
||||||
app_subscribe_bridge(app, bridge);
|
app_subscribe_bridge(app, bridge);
|
||||||
}
|
}
|
||||||
@@ -1388,7 +1390,9 @@ int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc,
|
|||||||
ast_bridge_depart(chan);
|
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);
|
ao2_cleanup(bridge);
|
||||||
|
|
||||||
/* Only publish a stasis_end event if it hasn't already been published */
|
/* Only publish a stasis_end event if it hasn't already been published */
|
||||||
|
Reference in New Issue
Block a user