diff options
author | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-12-07 15:39:58 +0000 |
---|---|---|
committer | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-12-07 15:39:58 +0000 |
commit | 8ccfe0b307fb1b8595253b05445f5b187711ea4d (patch) | |
tree | 0837c671311f4ff994b726f37a08d5203e3ff562 /main/autoservice.c | |
parent | 64a1504f113ce75866b6f3e3a036f54bf6e09636 (diff) |
Hangups that happen during autoservice were not processed appropriately. This is
because a hangup actually causes a NULL frame to be received, not a hangup frame.
Queueing a hangup if we receive a NULL frame during autoservice corrects this problem
(closes issue #11467, reported by jmls, patched by me)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@91737 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/autoservice.c')
-rw-r--r-- | main/autoservice.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/main/autoservice.c b/main/autoservice.c index dc5ad81bf..f6887f638 100644 --- a/main/autoservice.c +++ b/main/autoservice.c @@ -90,8 +90,11 @@ static void *autoservice_run(void *ign) if (chan) { struct ast_frame *f = ast_read(chan); - if (!f) + if (!f) { + /* NULL means we got a hangup*/ + ast_queue_hangup(chan); continue; + } /* Do not add a default entry in this switch statement. Each new * frame type should be addressed directly as to whether it should |