Hi Alexey,

Nice catch!  All four tests should produce DIFFERENT.  We have to look closer and figure out what is happening there... a quick assumption could be that there are some \0 NULL bytes in the binary-stored addresses which may not work very well with the script string comparison implementation.

Cheers,

Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com

On 13.12.2018 13:34, vasilevalex wrote:
Hi, all.

OpenSIPS 2.4.3 this script:

$var(ip_1_s) = "[2001:6c8:5e00:1::249]";
$var(ip_1_b) = $(var(ip_1_s){ip.pton}); # Save binary IP to variable
$var(ip_1) = $(var(ip_1_s){ip.pton}{ip.ntop}); # Save string from binary IP
to variable
$var(ip_2_s) = "[2001:6c8:5e00:1::250]";
$var(ip_2_b) = $(var(ip_2_s){ip.pton}); # Save binary IP to variable
$var(ip_2) = $(var(ip_2_s){ip.pton}{ip.ntop}); # Save string from binary IP
to variable
xlog("IP1 is $(var(ip_1)) af is $(var(ip_1_s){ip.pton}{ip.family})");
xlog("IP2 is $(var(ip_2)) af is $(var(ip_2_s){ip.pton}{ip.family})");
if ($(var(ip_1_s){ip.pton}) == $(var(ip_2_s){ip.pton})) {
         xlog("Binary addresses are EQUAL");
} else {
         xlog("Binary addresses are DIFFERENT");
}
if ($(var(ip_1_s){ip.pton}{ip.ntop}) == $(var(ip_2_s){ip.pton}{ip.ntop})) {
         xlog("Binary to string addresses are EQUAL");
} else {
         xlog("Binary to string addresses are DIFFERENT");
}
if ($var(ip_1_b) == $var(ip_2_b)) {
         xlog("Variable saved Binary addresses are EQUAL");
} else {
         xlog("Variable saved Binary addresses are DIFFERENT");
}
if ($var(ip_1) == $var(ip_2)) {
         xlog("Variable saved Binary to string addresses are EQUAL");
} else {
         xlog("Variable saved Binary to string addresses are DIFFERENT");
}


I thought, that all 4 conditions should be false. But I got this:

Dec 13 11:23:09 test64 /usr/sbin/opensips[6063]: IP1 is
2001:6C8:5E00:1:0:0:0:249 af is INET6
Dec 13 11:23:09 test64 /usr/sbin/opensips[6063]: IP2 is
2001:6C8:5E00:1:0:0:0:250 af is INET6
Dec 13 11:23:09 test64 /usr/sbin/opensips[6063]: Binary addresses are EQUAL
Dec 13 11:23:09 test64 /usr/sbin/opensips[6063]: Binary to string addresses
are EQUAL
Dec 13 11:23:09 test64 /usr/sbin/opensips[6063]: Variable saved Binary
addresses are EQUAL
Dec 13 11:23:09 test64 /usr/sbin/opensips[6063]: Variable saved Binary to
string addresses are DIFFERENT

Where am I wrong? what is incorrect?




--
Sent from: 
http://opensips-open-sip-server.1449251.n2.nabble.com/OpenSIPS-Users-f1449235.html

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to