[sr-dev] [permissions module] allow_source_address_group() drops the request if it returns 0

Daniel-Constantin Mierla miconda at gmail.com
Tue Feb 9 00:40:48 CET 2010



On 2/9/10 12:33 AM, Iñaki Baz Castillo wrote:
> El Martes, 9 de Febrero de 2010, Daniel-Constantin Mierla escribió:
>    
>>> So what about if I want to develop a module function which can return 0
>>> as a valid integer
>>>        
>> You can do that ...
>>
>>      
>>>    and store it in a pv?
>>>        
>> but it won't get here!
>>      
> Sure, I've experimented by myself :)
>
>
>    
>> Returning 0 from a function (core or module) is 'exit' from the
>> beginning of SER in 2001, it is how tm functions absorb retransmissions
>> and the config is not executed further (e.g., t_check_trans(),
>> t_newtran(), ...).
>>      
> Oh yes, it makes more sense now :)
>
>
>
>    
>>> "return 0" is document (AFAIK) but I didn't expect that any function
>>> returning 0 means "exiting".
>>>        
>> It means. 'return' is a core function.
>>      
> But I don't meant "return" core function, but any other function. Anyhow
> understood now.
>
>    
returning 0 from any config function to stop the execution was actually 
there before 'exit'. Now 'exit' (and 'drop') is associated with an 
internal flag in the execution state. But I believe changing 'return 0' 
will create some confusion. I would prefer a clean similar-to-C approach 
and internal flags usages for special cases, but we have to leave with 
the history sometimes ... Could be a debate for future major releases 
and will imply quite some work.

Cheers,
Daniel

-- 
Daniel-Constantin Mierla
eLearning class for Kamailio 3.0.0
* http://www.asipto.com/




More information about the sr-dev mailing list