[Asterisk-Dev] channel.c ast_call + ast_transfer OR instead of AND???

Michiel Betel michiel at betel.nl
Thu Nov 27 10:05:12 MST 2003


Should stop check in the ast_call and ast_transfer functions have an OR

        /* Stop if we're a zombie or need a soft hangup */
        ast_mutex_lock(&chan->lock);
        if (!chan->zombie || !ast_check_hangup(chan))
                                    
instead of the AND:
       
        /* Stop if we're a zombie or need a soft hangup */
        ast_mutex_lock(&chan->lock);
        if (!chan->zombie && !ast_check_hangup(chan))

Or does the AND have deeper reason??

I noticed my asterisk was trying to dial a zombie channel (and then 
crashed...) as in
-- Executing Dial("Zap/32-2<ZOMBIE>", "Zap/32|40|tm") in new stack






More information about the asterisk-dev mailing list