[asterisk-dev] [Code Review] Fix broken redirect out of MeetMe() aswell as the deeper issue at hand
Russell Bryant
russell at digium.com
Fri Jan 21 09:43:58 CST 2011
On Fri, 2011-01-21 at 12:24 +1100, Damien Wedhorn wrote:
> On Thu, 20 Jan 2011 23:14:02 -0000, "Russell Bryant" <reviewboard at asterisk.org> wrote:
> >
> > Removing ast_check_hangup() works around the issue in app_meetme, but
> > doesn't solve the issue if another application did the same thing. There
> > are also other edge cases where if an application finishes at the same time
> > that a redirect happens, the target of the redirect will think that the
> > channel hung up. So, I made some changes in pbx.c to resolve it at a
> > deeper level. There are already places that unset the SOFTHANGUP_ASYNCGOTO
> > flag in an attempt to abort the hangup process. My patch extends this to
> > remove the END_OF_Q frame from the channel's read queue, making the "abort
> > hangup" more complete.
> >
>
> I've a concern that your patch may aid in obfuscation of _softhangup handling. From a fundamental level, shouldn't the END_OF_Q frame be removed from any channel where _softhangup is explicitly set to zero? As such, I think the patch should not be just for SOFTHANGUP_ASYNC_GOTO, but for unsetting all _softhangup flags.
Thank you very much for the feedback from both you and Richard. I will
work on updating it to attempt to address the issues you both
identified.
--
Russell Bryant
Digium, Inc. | Engineering Manager, Open Source Software
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
jabber: rbryant at digium.com -=- skype: russell-bryant
www.digium.com -=- www.asterisk.org -=- blogs.asterisk.org
More information about the asterisk-dev
mailing list