summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpaul <paul>2006-03-30 14:20:00 +0000
committerpaul <paul>2006-03-30 14:20:00 +0000
commit1fcb05015ba5a97d2a5e152612af4484101fe850 (patch)
treed566069a034f56e1ac94a763e5867d2b12b33ce0
parent6c2e6ae4999394f06ec9210a32689e4ae0e192bd (diff)
downloadquagga-1fcb05015ba5a97d2a5e152612af4484101fe850.tar.bz2
quagga-1fcb05015ba5a97d2a5e152612af4484101fe850.tar.xz
[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))
{