diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-18 22:52:21 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-18 22:52:21 +0000 |
commit | 2c83f05ebb3060c268c396b5c5fe6a6f7f20a638 (patch) | |
tree | 20630ce6a7b373291da39670c360ee680603aed4 /apps/app_image.c | |
parent | 01ddee76b0828acb3407d556191b7ca60fb73fea (diff) |
it's a good idea to unregister everything before calling STANDARD_HANGUP_LOCALUSERS
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6828 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_image.c')
-rwxr-xr-x | apps/app_image.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/apps/app_image.c b/apps/app_image.c index e0a48c106..e54c90820 100755 --- a/apps/app_image.c +++ b/apps/app_image.c @@ -60,26 +60,38 @@ static int sendimage_exec(struct ast_channel *chan, void *data) { int res = 0; struct localuser *u; + + LOCAL_USER_ADD(u); + if (!data || !strlen((char *)data)) { ast_log(LOG_WARNING, "SendImage requires an argument (filename)\n"); + LOCAL_USER_REMOVE(u); return -1; } - LOCAL_USER_ADD(u); + if (!ast_supports_images(chan)) { /* Does not support transport */ - if (ast_exists_extension(chan, chan->context, chan->exten, chan->priority + 101, chan->cid.cid_num)) - chan->priority += 100; + ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 101); + LOCAL_USER_REMOVE(u); return 0; } + res = ast_send_image(chan, data); + LOCAL_USER_REMOVE(u); + return res; } int unload_module(void) { + int res; + + res = ast_unregister_application(app); + STANDARD_HANGUP_LOCALUSERS; - return ast_unregister_application(app); + + return res; } int load_module(void) |