summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Jakma <paul.jakma@sun.com>2006-03-30 14:20:00 +0000
committerPaul Jakma <paul.jakma@sun.com>2006-03-30 14:20:00 +0000
commit1a8ee0ec18ac280fda9362259d362805ce62be7d (patch)
tree2d29cc46074d35940ebc613a0eeecb6ab8ffb4a3
parentc2b478d7a4fae2eb2f7f895b80d36af9c8e73ab0 (diff)
[ospfd] ignore loopbacks for received interface validation
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.
-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))
{