Skip to content
Snippets Groups Projects
Commit 94a4eea7 authored by George Joseph's avatar George Joseph Committed by Richard Mudgett
Browse files

stasis_cache: Stop caching stasis subscription change messages

Since app_voicemail no longer uses the cache to maintain its state
there is no longer a need to cache these messages.

ASTERISK-27121

Change-Id: I321c708505f5ad8d00e1b0afc4c27dc2ac12ecb4
parent bce2a097
No related branches found
No related tags found
No related merge requests found
......@@ -819,29 +819,16 @@ static void caching_topic_exec(void *data, struct stasis_subscription *sub,
msg_type = stasis_message_type(message);
/*
* app_voicemail used to rely on the cache containing every topic subscribe and
* unsubscribe in order to determine if anyone was currently subscribed to a
* particular mailbox. This caused the cache to grow unabated for the life of
* the asterisk instance. Since it no longer needs the cache of these message
* types, and no other function needs them, we no longer cache them.
*/
if (stasis_subscription_change_type() == msg_type) {
struct stasis_subscription_change *change = stasis_message_data(message);
/*
* If this change type is an unsubscribe, we need to find the original
* subscribe and remove it from the cache otherwise the cache will
* continue to grow unabated.
*/
if (strcmp(change->description, "Unsubscribe") == 0) {
struct stasis_cache_entry *sub;
ao2_wrlock(caching_topic->cache->entries);
sub = cache_find(caching_topic->cache->entries, stasis_subscription_change_type(), change->uniqueid);
if (sub) {
cache_remove(caching_topic->cache->entries, sub, stasis_message_eid(message));
ao2_cleanup(sub);
}
ao2_unlock(caching_topic->cache->entries);
ao2_cleanup(caching_topic_needs_unref);
return;
}
msg_put = message;
msg = message;
ao2_cleanup(caching_topic_needs_unref);
return;
} else if (stasis_cache_clear_type() == msg_type) {
/* Cache clear event. */
msg_put = NULL;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment