diff options
-rw-r--r-- | ospfd/ChangeLog | 10 | ||||
-rw-r--r-- | ospfd/ospf_interface.c | 3 |
2 files changed, 13 insertions, 0 deletions
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog index 9f17a3a4..e5aa0660 100644 --- a/ospfd/ChangeLog +++ b/ospfd/ChangeLog @@ -1,3 +1,13 @@ +2006-03-25 Paul Jakma <paul.jakma@sun.com> + + * ospf_interface.c: (ospf_if_lookup_recv_if) Ignore loopbacks, + we can never ever receive packets on those. Should fix + case where CARP is run with address in same subnet as real + interface. Problem report and diagnosis thanks to: + Landon Fuller <landonf@opendarwin.org>. + However, ospf_read() still can't deal deterministically with + multiple interfaces in same subnet. + 2006-03-23 Steve Lawson <steve.lawson@aheadcomusa.com> * ospf_lsa.c: (ospf_lsa_install) Fix incorrect byte-order diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c index 82c4baee..8df0280a 100644 --- a/ospfd/ospf_interface.c +++ b/ospfd/ospf_interface.c @@ -474,6 +474,9 @@ ospf_if_lookup_recv_if (struct ospf *ospf, struct in_addr src) if (oi->type == OSPF_IFTYPE_VIRTUALLINK) continue; + if (if_is_loopback (oi->ifp)) + continue; + if ((oi->type == OSPF_IFTYPE_POINTOPOINT) && CONNECTED_DEST_HOST(oi->connected)) { |