From: Mark Michelson Date: Fri, 7 Dec 2007 15:40:59 +0000 (+0000) Subject: Merged revisions 91737 via svnmerge from X-Git-Tag: 1.6.0-beta1~3^2~505 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=05dd9b7ef003e0d9a69cd80e815dd1d7ed457dfc;p=thirdparty%2Fasterisk.git 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 --- diff --git a/main/autoservice.c b/main/autoservice.c index 568cf1070a..bb0791fcac 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