Skip to content
Snippets Groups Projects
Commit 23329d07 authored by Russell Bryant's avatar Russell Bryant
Browse files

func_periodic_hook: add module ref counting

This module lacked necessary module ref count incrementing and decrementing
when used.  This patch adds it.  There's already a datastore used, so doing the
ref counting along with the lifetime of the datastore provides a convenient
place to do it.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@412279 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 04429e5c
No related branches found
No related tags found
No related merge requests found
...@@ -135,6 +135,8 @@ static void hook_datastore_destroy_callback(void *data) ...@@ -135,6 +135,8 @@ static void hook_datastore_destroy_callback(void *data)
ast_free(state->context); ast_free(state->context);
ast_free(state->exten); ast_free(state->exten);
ast_free(state); ast_free(state);
ast_module_unref(ast_module_info->self);
} }
static const struct ast_datastore_info hook_datastore = { static const struct ast_datastore_info hook_datastore = {
...@@ -298,10 +300,13 @@ static int init_hook(struct ast_channel *chan, const char *context, const char * ...@@ -298,10 +300,13 @@ static int init_hook(struct ast_channel *chan, const char *context, const char *
snprintf(uid, sizeof(uid), "%u", hook_id); snprintf(uid, sizeof(uid), "%u", hook_id);
ast_module_ref(ast_module_info->self);
if (!(datastore = ast_datastore_alloc(&hook_datastore, uid))) { if (!(datastore = ast_datastore_alloc(&hook_datastore, uid))) {
ast_module_unref(ast_module_info->self);
return -1; return -1;
} }
if (!(state = hook_state_alloc(context, exten, interval, hook_id))) { if (!(state = hook_state_alloc(context, exten, interval, hook_id))) {
ast_module_unref(ast_module_info->self);
ast_datastore_free(datastore); ast_datastore_free(datastore);
return -1; return -1;
} }
......
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