app_voicemail: Cleanup mailbox topic and cache
app_voicemail wasn't properly cleaning up the stasis cache or the mwi topic pool when the module was unloaded or when a user was deleted as a result of a reload. This resulted in leaks in both areas. * app_voicemail now calls ast_delete_mwi_state_full when it frees a user structure and ast_delete_mwi_state_full in turn now calls the new stasis_topic_pool_delete_topic function to clear the topic from the pool. Change-Id: Ide23144a4a810e7e0faad5a8e988d15947965df8
This commit is contained in:
parent
1a9c69d729
commit
fa1b836374
|
@ -2020,6 +2020,10 @@ static void free_user(struct ast_vm_user *vmu)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!ast_strlen_zero(vmu->mailbox)) {
|
||||
ast_delete_mwi_state_full(vmu->mailbox, vmu->context, NULL);
|
||||
}
|
||||
|
||||
ast_free(vmu->email);
|
||||
vmu->email = NULL;
|
||||
ast_free(vmu->emailbody);
|
||||
|
|
|
@ -3344,6 +3344,9 @@ int ast_delete_mwi_state_full(const char *mailbox, const char *context, struct a
|
|||
if (clear_msg) {
|
||||
stasis_publish(mailbox_specific_topic, clear_msg);
|
||||
}
|
||||
|
||||
stasis_topic_pool_delete_topic(mwi_topic_pool, stasis_topic_name(mailbox_specific_topic));
|
||||
|
||||
ao2_cleanup(clear_msg);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue