diff options
author | Mark Spencer <markster@digium.com> | 2005-10-11 21:08:26 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2005-10-11 21:08:26 +0000 |
commit | c5a8178bb4a8319479d119a618099a26588a1ed9 (patch) | |
tree | 5106cb14affc61f251fe137ddd96b9702cbf19d2 /apps/app_directed_pickup.c | |
parent | 460655f31ca1bec2d6ad52fd82379fa24bc7efa4 (diff) |
Fix directed pickup to a call that is up (bug #5425 with mods)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6743 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_directed_pickup.c')
-rwxr-xr-x | apps/app_directed_pickup.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/apps/app_directed_pickup.c b/apps/app_directed_pickup.c index e9282d262..df766366d 100755 --- a/apps/app_directed_pickup.c +++ b/apps/app_directed_pickup.c @@ -100,7 +100,6 @@ static int pickup_exec(struct ast_channel *chan, void *data) if (res) { ast_log(LOG_WARNING, "Unable to answer '%s'\n", chan->name); res = -1; - ast_mutex_unlock(&target->lock); goto out; } res = ast_queue_control(chan, AST_CONTROL_ANSWER); @@ -108,24 +107,21 @@ static int pickup_exec(struct ast_channel *chan, void *data) ast_log(LOG_WARNING, "Unable to queue answer on '%s'\n", chan->name); res = -1; - ast_mutex_unlock(&target->lock); goto out; } res = ast_channel_masquerade(target, chan); if (res) { ast_log(LOG_WARNING, "Unable to masquerade '%s' into '%s'\n", chan->name, target->name); res = -1; - ast_mutex_unlock(&target->lock); goto out; } - /* Done */ - ast_mutex_unlock(&target->lock); } else { ast_log(LOG_DEBUG, "No call pickup possible...\n"); res = -1; } - + /* Done */ out: + if (target) ast_mutex_unlock(&target->lock); LOCAL_USER_REMOVE(u); return res; |