Some ospfd fixes - [quagga-dev 1032], [quagga-dev 1048], [quagga-dev 1058].
diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 904228c..87a5511 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,11 @@
+2004-04-20 Hasso Tepper <hasso@estpak.ee>
+
+ * ospfd.c: Unset NP flag if area is going to be normal or stub.
+ Fixes UNH OSPF_NSSA.1.2a comment.
+ * ospf_abr.c: Originate default into stub/nssa area even if
+ summaries are disabled.
+ * ospf_zebra.c: Don't attempt to redistribute 127.0.0.0/8.
+
2004-04-19 Hasso Tepper <hasso@estpak.ee>
* ospf_vty.c: Don't warn that export- and import-list can't be
diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c
index 424d1d3..359e3ba 100644
--- a/ospfd/ospf_abr.c
+++ b/ospfd/ospf_abr.c
@@ -1628,9 +1628,6 @@
if (OSPF_IS_AREA_BACKBONE (area))
continue; /* Sanity Check */
- if (area->no_summary)
- continue;
-
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("ospf_abr_announce_stub_defaults(): "
"announcing 0.0.0.0/0 to area %s",
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index e3738be..300105f 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -794,6 +794,9 @@
p.prefixlen = stream_getc (s);
stream_get (&p.prefix, s, PSIZE (p.prefixlen));
+ if (IPV4_NET127(ntohl(p.prefix.s_addr)))
+ return 0;
+
/* Nexthop, ifindex, distance, metric. */
if (CHECK_FLAG (api.message, ZAPI_MESSAGE_NEXTHOP))
{
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 89ef21b..abf898c 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -982,7 +982,12 @@
for (node = listhead (area->oiflist); node; nextnode (node))
if ((oi = getdata (node)) != NULL)
if (oi->nbr_self != NULL)
- SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+ {
+#ifdef HAVE_NSSA
+ UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP);
+#endif /* HAVE_NSSA */
+ SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+ }
break;
case OSPF_AREA_STUB:
for (node = listhead (area->oiflist); node; nextnode (node))
@@ -991,6 +996,9 @@
{
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("setting options on %s accordingly", IF_NAME (oi));
+#ifdef HAVE_NSSA
+ UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP);
+#endif /* HAVE_NSSA */
UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
if (IS_DEBUG_OSPF_EVENT)
zlog_info ("options set on %s: %x",