* Complex types, their bison value is struct f_val
*/
prefix_s:
- IPA '/' NUM { $$.type = T_PREFIX; $$.val.px.ip = $1; $$.val.px.len = $3; printf( "ook, we have prefix here\n" ); }
+ IPA '/' NUM { $$.type = T_PREFIX; $$.val.px.ip = $1; $$.val.px.len = $3; cf_error( "%I/%d is not really prefix\n", $$.val.px.ip, $$.val.px.len ); }
;
prefix:
mask = ipa_mkmask( v2.val.px.len & LEN_MASK );
if (ipa_compare(ipa_and(v2.val.px.ip, mask), ipa_and(v1.val.px.ip, mask)))
return 0;
- /* FIXME: read rpsl or better ask mj: is it really like this? */
+
if ((v2.val.px.len & LEN_MINUS) && (v1.val.px.len <= (v2.val.px.len & LEN_MASK)))
return 0;
if ((v2.val.px.len & LEN_PLUS) && (v1.val.px.len < (v2.val.px.len & LEN_MASK)))
case '<': COMPARE(i==-1);
case '<=': COMPARE(i!=1);
- /* FIXME: Should be able to work with prefixes of limited sizes */
case '~':
TWOARGS;
res.type = T_BOOL;
break;
}
*f_rte = rte_do_cow(*f_rte);
- l->next = *f_rte->attrs->eattrs;
- *f_rte->attrs->eattrs = l;
+ l->next = (*f_rte)->attrs->eattrs;
+ (*f_rte)->attrs->eattrs = l;
}
break;