summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ospfd/ChangeLog10
-rw-r--r--ospfd/ospf_interface.c3
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))
{