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",