summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2012-02-10 18:08:19 +0000
committerRichard Mudgett <rmudgett@digium.com>2012-02-10 18:08:19 +0000
commit8af49f158a03de3fd54be592677cce31a9749232 (patch)
tree9241b6431c81cd95475c9f6c4b96869f803828b2 /main
parenta8cf4dc2b59386d52cbd0a6b51ecb27843b9d982 (diff)
Fix AMI Redirect ExtraChannel not redirecting to the same exten and context.
The astman_get_header() never returns NULL so the check by the code for NULL would never fail. (closes issue ASTERISK-16974) Reported by: Nuno Borges Patches: 0018325.patch (license #6116) patch uploaded by Nuno Borges (modified) ........ Merged revisions 354835 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 354836 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@354837 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/manager.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/main/manager.c b/main/manager.c
index 3558697cb..583aafb3f 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -3515,7 +3515,7 @@ static int action_redirect(struct mansession *s, const struct message *m)
ast_set_flag(chan2, AST_FLAG_BRIDGE_HANGUP_DONT); /* don't let the after-bridge code run the h-exten */
ast_channel_unlock(chan2);
}
- if (context2) {
+ if (!ast_strlen_zero(context2)) {
res = ast_async_goto(chan2, context2, exten2, pi2);
} else {
res = ast_async_goto(chan2, context, exten, pi);
@@ -3535,10 +3535,7 @@ static int action_redirect(struct mansession *s, const struct message *m)
astman_send_error(s, m, "Redirect failed");
}
- if (chan) {
- chan = ast_channel_unref(chan);
- }
-
+ chan = ast_channel_unref(chan);
if (chan2) {
chan2 = ast_channel_unref(chan2);
}