summaryrefslogtreecommitdiff
path: root/main/autoservice.c
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2007-12-07 15:40:59 +0000
committerMark Michelson <mmichelson@digium.com>2007-12-07 15:40:59 +0000
commit05dd9b7ef003e0d9a69cd80e815dd1d7ed457dfc (patch)
tree4679a1777b1f410d8d45fb7374982327c2406294 /main/autoservice.c
parent547083e21a5a8459354f6568580ee7f90f8f9a35 (diff)
Merged revisions 91737 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r91737 | mmichelson | 2007-12-07 09:39:58 -0600 (Fri, 07 Dec 2007) | 7 lines 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: https://origsvn.digium.com/svn/asterisk/trunk@91738 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/autoservice.c')
-rw-r--r--main/autoservice.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/main/autoservice.c b/main/autoservice.c
index 568cf1070..bb0791fca 100644
--- a/main/autoservice.c
+++ b/main/autoservice.c
@@ -81,8 +81,11 @@ static void *autoservice_run(void *ign)
if ((chan = ast_waitfor_n(mons, x, &ms))) {
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