Fix i_same for 'c' instruction.

This commit is contained in:
Pavel Machek 2000-06-08 16:57:41 +00:00
parent 89e7de98e4
commit 4bb18dd2da
2 changed files with 35 additions and 11 deletions

View file

@ -748,7 +748,21 @@ i_same(struct f_inst *f1, struct f_inst *f2)
}
break;
case 'c': A2_SAME; break;
case 'c':
if (f1->aux & T_SET) {
if (!same_tree(f1->a2.p, f2->a2.p))
return 0;
break;
}
switch (f1->aux) {
case T_STRING:
if (strcmp(f1->a2.p, f2->a2.p))
return 0;
break;
default:
A2_SAME;
}
break;
case 'C':
if (val_compare(* (struct f_val *) f1->a1.p, * (struct f_val *) f2->a1.p))
return 0;

View file

@ -69,6 +69,26 @@ function bla()
define four=4;
define onetwo=1.2.3.4;
function __test1()
{
if source ~ [ RTS_BGP, RTS_STATIC ] then {
# ospf_metric1 = 65535;
# ospf_metric2 = 1000;
ospf_tag = 0x12345678;
accept;
} reject;
}
function __test2()
{
if source ~ [ RTS_BGP, RTS_STATIC ] then {
# ospf_metric1 = 65535;
# ospf_metric2 = 1000;
ospf_tag = 0x12345678;
accept;
} reject;
}
function __startup()
int i;
prefix px;
@ -123,16 +143,6 @@ ip p;
# print "*** FAIL: this is unreachable";
}
function __test1()
{
print bgp_path ~ / 65000 /;
}
function __test2()
{
print bgp_path ~ / 65000 /;
}
filter testf
int j;
{