summaryrefslogtreecommitdiff
path: root/ospfd/ospfd.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospfd.c')
-rw-r--r--ospfd/ospfd.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 89ef21b1..abf898ca 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -982,7 +982,12 @@ ospf_area_type_set (struct ospf_area *area, int type)
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 @@ ospf_area_type_set (struct ospf_area *area, int type)
{
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",