summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2017-07-26 07:58:45 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-07-26 07:58:45 -0500
commit28979a0f1ccb90352c89af574a56e5a7f6e8908c (patch)
tree16d3eb06194f6d1a9283029a41e241be755c94d5
parenta11f5fb51a0f2a37e73b94077310ab92e785ad2b (diff)
parent2128dc7c87d0611eb397795aba33d30958338d71 (diff)
Merge "res_stasis_device_state: Unsubscribe should remove old subscriptions" into 15
-rw-r--r--res/res_stasis_device_state.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/res/res_stasis_device_state.c b/res/res_stasis_device_state.c
index 344cb40c9..276a98b93 100644
--- a/res/res_stasis_device_state.c
+++ b/res/res_stasis_device_state.c
@@ -106,7 +106,6 @@ static int device_state_subscriptions_cmp(void *obj, void *arg, int flags)
static void device_state_subscription_destroy(void *obj)
{
struct device_state_subscription *sub = obj;
- sub->sub = stasis_unsubscribe_and_join(sub->sub);
ast_string_field_free_memory(sub);
}
@@ -152,6 +151,9 @@ static struct device_state_subscription *find_device_state_subscription(
static void remove_device_state_subscription(
struct device_state_subscription *sub)
{
+ if (sub->sub) {
+ sub->sub = stasis_unsubscribe_and_join(sub->sub);
+ }
ao2_unlink_flags(device_state_subscriptions, sub, OBJ_NOLOCK);
}