mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 01:31:55 +00:00
Allow iface pattern matching code to match peer address on ptp links.
This commit is contained in:
parent
0aad2b9292
commit
5d53b80770
@ -181,8 +181,8 @@ iface_patt_node_init:
|
||||
|
||||
iface_patt_node_body:
|
||||
TEXT { this_ipn->pattern = $1; this_ipn->prefix = IPA_NONE; this_ipn->pxlen = 0; }
|
||||
| prefix { this_ipn->pattern = NULL; this_ipn->prefix = $1.addr; this_ipn->pxlen = $1.len; }
|
||||
| TEXT prefix { this_ipn->pattern = $1; this_ipn->prefix = $2.addr; this_ipn->pxlen = $2.len; }
|
||||
| prefix_or_ipa { this_ipn->pattern = NULL; this_ipn->prefix = $1.addr; this_ipn->pxlen = $1.len; }
|
||||
| TEXT prefix_or_ipa { this_ipn->pattern = $1; this_ipn->prefix = $2.addr; this_ipn->pxlen = $2.len; }
|
||||
;
|
||||
|
||||
iface_negate:
|
||||
|
14
nest/iface.c
14
nest/iface.c
@ -588,12 +588,20 @@ iface_patt_match(struct iface_patt *ifp, struct iface *i, struct ifa *a)
|
||||
continue;
|
||||
}
|
||||
|
||||
// FIXME there should be check for prefix in prefix. (?)
|
||||
if (p->pxlen)
|
||||
if (!a || !ipa_in_net(a->ip, p->prefix, p->pxlen))
|
||||
if (p->pxlen == 0)
|
||||
return pos;
|
||||
|
||||
if (!a)
|
||||
continue;
|
||||
|
||||
if (ipa_in_net(a->ip, p->prefix, p->pxlen))
|
||||
return pos;
|
||||
|
||||
if ((a->flags & IA_UNNUMBERED) &&
|
||||
ipa_in_net(a->opposite, p->prefix, p->pxlen))
|
||||
return pos;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user