aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_image.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-18 22:52:21 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-18 22:52:21 +0000
commit2c83f05ebb3060c268c396b5c5fe6a6f7f20a638 (patch)
tree20630ce6a7b373291da39670c360ee680603aed4 /apps/app_image.c
parent01ddee76b0828acb3407d556191b7ca60fb73fea (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-xapps/app_image.c20
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)