[Users] Re: [Devel] test return code in config file

Klaus Darilion klaus.mailinglists at pernau.at
Wed Jun 29 22:58:19 CEST 2005


cool - I recently reviewed ser's code to add an "exit" command myself :-)

Conclusion for myself:
break; leaves current route block, identical to return(1)
exit;  leaves entire script, identical to return(0)

regards,
klaus

Daniel-Constantin Mierla wrote:

> 
> 
> On 06/29/05 18:36, Klaus Darilion wrote:
> 
>> Bogdan-Andrei Iancu wrote:
>>
>>>
>>>>
>>>> Is there a differnce between
>>>>   return(0);
>>>> and
>>>>   break;
>>>> ?
>>>>
>>> just to clarify a little bit - the return code convention is like 
>>> this: if a function returns 0, the entire script execution will be 
>>> stopped. If is a negative value -> false; if positive ->true.
>>> Now, return(0) returns with code 0 -> is the same as exit -> it will 
>>> terminated the script execution.
>>> on the other hand, break is used to terminate only the current route 
>>> (is similar to return(1) )
>>
>>
>>
>> Are you sure?
> 
> 
> yes.
> 
>> AFAIK break; return 0
> 
> 
> that happens in ser, but has changed in openser to keep the 
> compatibility -- in ser, break exists from current route and if(route()) 
> is always true if there was a break.
> 
> This is a bug is ser because many functions exported for use in config 
> rely that when returning 0, no further processing takes place (e.g., 
> t_newtran() returns 0 if detects retransmission and if the t_newtran() 
> is used in other route than 0, the retransmissions are processed).
> 
> So, in openser, 'break' is return(1) and there is also 'exit' which is 
> return(0).
> 
>> If return(0) also returns 0, then it is like break and only exits from 
>> the current route block.
>>
>> If your statement is correct, it is possible to exit ser.cfg from any 
>> route block by return(0)? 
> 
> 
> yes, you can exit cfg from any route -- you can use also 'exit' which is 
> more appropriate as name.
> 
>> I didn't knew that.
> 
> 
> It is written in the file with changes from ser to openser, but maybe 
> not that obviously.
> 
> 
> Regards,
> Daniel
> 
>>
>> regards,
>> klaus
>>
> 
> 




More information about the Users mailing list