diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2010-03-14 16:36:59 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2010-03-14 16:36:59 +0100 |
commit | 0aad2b9292f8e5ff32d048378faf80d2d0bfbb80 (patch) | |
tree | e245c5adb1392fee5d402b25823b558969f9cd13 /nest/iface.c | |
parent | 54305181f6ee3af57dd3d15d53ea2e851b36ed23 (diff) | |
download | bird-0aad2b9292f8e5ff32d048378faf80d2d0bfbb80.tar bird-0aad2b9292f8e5ff32d048378faf80d2d0bfbb80.zip |
Temporary OSPF commit - sockets.
Diffstat (limited to 'nest/iface.c')
-rw-r--r-- | nest/iface.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/nest/iface.c b/nest/iface.c index 82dead3..a80e973 100644 --- a/nest/iface.c +++ b/nest/iface.c @@ -566,8 +566,8 @@ if_init(void) * Interface Pattern Lists */ -static int -iface_patt_match(struct iface_patt *ifp, struct iface *i) +int +iface_patt_match(struct iface_patt *ifp, struct iface *i, struct ifa *a) { struct iface_patt_node *p; @@ -588,8 +588,9 @@ iface_patt_match(struct iface_patt *ifp, struct iface *i) continue; } + // FIXME there should be check for prefix in prefix. (?) if (p->pxlen) - if (!i->addr || !ipa_in_net(i->addr->ip, p->prefix, p->pxlen)) + if (!a || !ipa_in_net(a->ip, p->prefix, p->pxlen)) continue; return pos; @@ -599,12 +600,12 @@ iface_patt_match(struct iface_patt *ifp, struct iface *i) } struct iface_patt * -iface_patt_find(list *l, struct iface *i) +iface_patt_find(list *l, struct iface *i, struct ifa *a) { struct iface_patt *p; WALK_LIST(p, *l) - if (iface_patt_match(p, i)) + if (iface_patt_match(p, i, a)) return p; return NULL; |