mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 20:08:17 +00:00
Merged revisions 163171 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r163171 | russell | 2008-12-11 14:07:47 -0600 (Thu, 11 Dec 2008) | 16 lines Fix the "failed" extension for outgoing calls. The conversion to use ast_check_hangup() everywhere instead of checking the softhangup flag directly introduced this problem. The issue is that ast_check_hangup() checked for tech_pvt to be NULL. Unfortunately, this will be NULL is some valid circumstances, such as with a dummy channel. The fix is simple. Don't check tech_pvt. It's pointless, because the code path that sets this to NULL is when the channel hangup callback gets called. This happens inside of ast_hangup(), which is the same function responsible for freeing the channel. Any code calling ast_check_hangup() better not be calling it after that point, and if so, we have a bigger problem at hand. (closes issue #14035) Reported by: erogoza ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@163173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -462,8 +462,6 @@ int ast_check_hangup(struct ast_channel *chan)
|
||||
{
|
||||
if (chan->_softhangup) /* yes if soft hangup flag set */
|
||||
return 1;
|
||||
if (!chan->tech_pvt) /* yes if no technology private data */
|
||||
return 1;
|
||||
if (ast_tvzero(chan->whentohangup)) /* no if no hangup scheduled */
|
||||
return 0;
|
||||
if (ast_tvdiff_ms(chan->whentohangup, ast_tvnow()) > 0) /* no if hangup time has not come yet. */
|
||||
|
||||
Reference in New Issue
Block a user