Merge "app.c: Remove deletion of pool topic on mwi state delete"
authorGeorge Joseph <gjoseph@digium.com>
Fri, 15 Mar 2019 23:30:08 +0000 (18:30 -0500)
committerGerrit Code Review <gerrit2@gerrit.digium.api>
Fri, 15 Mar 2019 23:30:08 +0000 (18:30 -0500)
main/app.c
main/stasis.c
res/res_pjsip_mwi.c

index e8a4d2f..d272e40 100644 (file)
@@ -3337,8 +3337,6 @@ int ast_delete_mwi_state_full(const char *mailbox, const char *context, struct a
                stasis_publish(mailbox_specific_topic, clear_msg);
        }
 
-       stasis_topic_pool_delete_topic(mwi_topic_pool, mwi_state->uniqueid);
-
        ao2_cleanup(clear_msg);
        return 0;
 }
index 5f4a147..7dd3893 100644 (file)
@@ -400,6 +400,7 @@ static void topic_dtor(void *obj)
 
        AST_VECTOR_FREE(&topic->subscribers);
        AST_VECTOR_FREE(&topic->upstream_topics);
+       ast_debug(1, "Topic '%s': %p destroyed\n", topic->name, topic);
 
 #ifdef AST_DEVMODE
        if (topic->statistics) {
@@ -454,6 +455,8 @@ struct stasis_topic *stasis_topic_create(const char *name)
        strcpy(topic->name, name); /* SAFE */
        res |= AST_VECTOR_INIT(&topic->subscribers, INITIAL_SUBSCRIBERS_MAX);
        res |= AST_VECTOR_INIT(&topic->upstream_topics, 0);
+       ast_debug(1, "Topic '%s': %p created\n", topic->name, topic);
+
 #ifdef AST_DEVMODE
        topic->statistics = stasis_topic_statistics_create(topic);
        if (!topic->name || !topic->statistics || res)
@@ -752,6 +755,7 @@ struct stasis_subscription *internal_stasis_subscribe(
 
        if (topic_add_subscription(topic, sub) != 0) {
                ao2_ref(sub, -1);
+               ao2_ref(topic, -1);
 
                return NULL;
        }
index eeb8a18..72f8b59 100644 (file)
@@ -259,10 +259,12 @@ static struct mwi_stasis_subscription *mwi_stasis_subscription_alloc(const char
        /* Safe strcpy */
        strcpy(mwi_stasis_sub->mailbox, mailbox);
 
-       ast_debug(3, "Creating stasis MWI subscription to mailbox %s for endpoint %s\n",
-               mailbox, mwi_sub->id);
+       ast_debug(3, "Creating stasis MWI subscription to mailbox %s for endpoint %s.  Topic: '%s':%p %d\n",
+               mailbox, mwi_sub->id, stasis_topic_name(topic), topic, (int)ao2_ref(topic, 0));
        ao2_ref(mwi_sub, +1);
        mwi_stasis_sub->stasis_sub = stasis_subscribe_pool(topic, mwi_stasis_cb, mwi_sub);
+       ao2_ref(topic, -1);
+
        if (!mwi_stasis_sub->stasis_sub) {
                /* Failed to subscribe. */
                ao2_ref(mwi_stasis_sub, -1);