Ohh ... it is $var(true) and not $true .... I think having a $true pvar would be nice. But I would like to have the $true pvar for all flavors, not only for KAMAILIO flavor.
Thanks, Ovidiu
On Wed, Apr 7, 2010 at 2:02 PM, Ovidiu Sas osas@voipembedded.com wrote:
Actually, the modparam doesn't work. And I got these errors with the following simple config:
#!KAMAILIO
mpath="/usr/lib/kamailio/modules_k/:/usr/lib/kamailio/modules/" loadmodule "xlog.so" loadmodule "pv.so" modparam("pv", "varset", "true=i:1")
route{ xlog("L_INFO","$true\n"); }
ERROR: <core> [pvapi.c:501]: error searching pvar "true" ERROR: <core> [pvapi.c:705]: wrong char [e/101] in [$true ] at [4 (0)] ERROR: xlog [xlog.c:305]: wrong format[$true ]! ERROR: <core> [route.c:1026]: fixing failed (code=-1) at cfg:/etc/kamailio/kamailio.cfg:10
I haven't used the varset before, so maybe I'm doing something wrong here ...
On Wed, Apr 7, 2010 at 1:01 PM, Ovidiu Sas osas@voipembedded.com wrote:
Yes, it was in 1.5 and it was really handy. The modparam("pv", "varset", "true=i:1") seems to do the trick. It is an extra line in the config but seems to be fine.
Thanks, Ovidiu
On Wed, Apr 7, 2010 at 12:25 PM, Daniel-Constantin Mierla miconda@gmail.com wrote:
On 4/7/10 6:14 PM, Ovidiu Sas wrote:
How about defining a new PV: '$true'. If we have a constant word in the while loop, then yes, it might be a missconfiguration and it is good to have the warning. Having a '$true' PV will mean that we want an infinite loop and there's no need to print the warning. The '$true' will make the config more easy to read as opposed to defining a variable just for the purpose of creating an infinite loop.
never used the while (true) loop, was it in 1.5? If yes, we can wrap the warning log in #!KAMAILIO compat mode.
An optimization to Andrei's suggestion is to init the true var at startup, to avoid assignment every cfg execution:
modparam("pv", "varset", "true=i:1")
Cheers, Daniel
Thanks, Ovidiu
On Fri, Apr 2, 2010 at 4:53 AM, Andrei Pelinescu-Onciul andrei@iptel.org wrote:
On Apr 01, 2010 at 22:23, Ovidiu Sas osas@voipembedded.com wrote:
If I define an infinite loop like this: while( true ) { ... } the following warning is reported: WARNING: <core> [cfg.y:3307]: warning in config file /etc/kamailio/kamailio.cfg, line 4, column 9-12: constant value in while(...) The config file used for testing: #!KAMAILIO
route{ while( true ) { exit; } exit; }
How can I define a simple infinite loop without getting a warning in the logs.
I don't want to define a variable just for the while loop and test it. $var(true) = 1; while ($var(true)) { ... }
Is there a specific PV like '$null' or a specific keyword?
No, you have to live with the warning. In most cases infinite loops are a bug and hence we better have the warning (this is a sip router and not a general programing language).
Andrei
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
-- Daniel-Constantin Mierla * http://www.asipto.com/ * http://twitter.com/miconda * http://www.linkedin.com/in/danielconstantinmierla