[ospfd] NSSA translate-enabled ABR should declare itself as ASBR

2006-06-26 Paul Jakma <paul.jakma@sun.com>

	* ospf_abr.c: (general) NSSA translate-candidate ABRs need to
	  be ASBRs, or other routers may rightfully refuse to install
	  translated type-5s LSAs. reported by dendroot@gmail.com.
	  (ospf_abr_nssa_check_status) Detect change in translator
	  state when ABR, and inc/dec redistribute count as when we
	  leave/enter the disabled state - so that translate-enabled
	  ABR properly sets ASBR bit on non-NSSA areas.
	  Run the resulting function through indent to clean it up.
	* ospf_lsa.c: (router_lsa_flags) For purposes of ASBR bit,
	  NSSA area is same as stub area.
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index a0afbad..509afc8 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -437,7 +437,8 @@
 	SET_FLAG (flags, ROUTER_LSA_SHORTCUT);
 
   /* ASBR can't exit in stub area. */
-  if (area->external_routing == OSPF_AREA_STUB)
+  if (area->external_routing == OSPF_AREA_STUB
+      || area->external_routing == OSPF_AREA_NSSA)
     UNSET_FLAG (flags, ROUTER_LSA_EXTERNAL);
   /* If ASBR set External flag */
   else if (IS_OSPF_ASBR (area->ospf))