On 3/31/10 8:40 AM, Juha Heinanen wrote:
i played a bit more with selects and found that
statement
if ($sht(auth=>foo::count)> @cfg_get.local.gw_timeout) {
xlog("foo");
}
I guess selects have types, while pseudo-variables are kind of type
agnostic. Any PV has a string representation of the value, comparison is
done as integer if both PVs are integers, otherwise is done as string.
The safe side is to use PV representation of selects when comparing with
another PV.
PV and selects is another point for the future coherence.
Cheers,
Daniel
produces error
0(9213) :<core> [cfg.y:3379]: parse error in config file
/etc/sip-proxy/sip-proxy.cfg, line 507, column 28-55: bad expression: type mismatch: str
instead of int at (507,55)
but the error goes away if i either make explicit conversion
if ($sht(auth=>foo::count)> (int)(a)cfg_get.local.gw_timeout) {
xlog("foo");
}
or use $sel
if ($sht(auth=>foo::count)> $sel(cfg_get.local.gw_timeout)) {
xlog("foo");
}
this is thus exactly opposite than in my t_set_fr ordeal where i got
conversion error when i used $sel instead of @.
in my opinion, no (int) conversion should be needed in the firs case,
because the value of the cfg variable is int.
in summary, writing statements that include selects is very difficult
and error prone.
-- juha
_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
--
Daniel-Constantin Mierla *
http://www.asipto.com/ *
http://twitter.com/miconda *
http://www.linkedin.com/in/danielconstantinmierla