summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_interface.c')
-rw-r--r--ospf6d/ospf6_interface.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 0cc3bd2cc9..a5d9138743 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -1622,12 +1622,11 @@ DEFUN (ipv6_ospf6_cost,
return CMD_WARNING_CONFIG_FAILED;
}
+ SET_FLAG(oi->flag, OSPF6_INTERFACE_NOAUTOCOST);
if (oi->cost == lcost)
return CMD_SUCCESS;
oi->cost = lcost;
- SET_FLAG(oi->flag, OSPF6_INTERFACE_NOAUTOCOST);
-
ospf6_interface_force_recalculate_cost(oi);
return CMD_SUCCESS;
@@ -1976,8 +1975,11 @@ DEFUN (no_ipv6_ospf6_passive,
UNSET_FLAG(oi->flag, OSPF6_INTERFACE_PASSIVE);
THREAD_OFF(oi->thread_send_hello);
THREAD_OFF(oi->thread_sso);
- thread_add_event(master, ospf6_hello_send, oi, 0,
- &oi->thread_send_hello);
+
+ /* don't send hellos over loopback interface */
+ if (!if_is_loopback(oi->interface))
+ thread_add_event(master, ospf6_hello_send, oi, 0,
+ &oi->thread_send_hello);
return CMD_SUCCESS;
}