diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2010-03-19 18:46:56 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2010-03-19 18:46:56 +0100 |
commit | 5d53b80770b4927b5a8205ee0e57f80454b0abf5 (patch) | |
tree | 416fba8870025e456be35ba0cd980dff6345c1a1 /nest/iface.c | |
parent | 0aad2b9292f8e5ff32d048378faf80d2d0bfbb80 (diff) |
Allow iface pattern matching code to match peer address on ptp links.
Diffstat (limited to 'nest/iface.c')
-rw-r--r-- | nest/iface.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/nest/iface.c b/nest/iface.c index a80e9736..4d0cf04c 100644 --- a/nest/iface.c +++ b/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)) - continue; + if (p->pxlen == 0) + return pos; - 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; |