diff options
Diffstat (limited to 'main/channel_internal_api.c')
-rw-r--r-- | main/channel_internal_api.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/main/channel_internal_api.c b/main/channel_internal_api.c index 698783707..f40852f0b 100644 --- a/main/channel_internal_api.c +++ b/main/channel_internal_api.c @@ -426,13 +426,13 @@ void ast_channel_##field##_set(struct ast_channel *chan, const char *value) \ if ((assert_on_null)) ast_assert(!ast_strlen_zero(value)); \ if (!strcmp(value, chan->field)) return; \ ast_string_field_set(chan, field, value); \ - if (publish) ast_channel_publish_snapshot(chan); \ + if (publish && ast_channel_internal_is_finalized(chan)) ast_channel_publish_snapshot(chan); \ } \ \ void ast_channel_##field##_build_va(struct ast_channel *chan, const char *fmt, va_list ap) \ { \ ast_string_field_build_va(chan, field, fmt, ap); \ - if (publish) ast_channel_publish_snapshot(chan); \ + if (publish && ast_channel_internal_is_finalized(chan)) ast_channel_publish_snapshot(chan); \ } \ void ast_channel_##field##_build(struct ast_channel *chan, const char *fmt, ...) \ { \ @@ -1481,7 +1481,6 @@ int ast_channel_internal_setup_topics(struct ast_channel *chan) chan->topics = stasis_cp_single_create( ast_channel_cache_all(), topic_name); - if (!chan->topics) { return -1; } |