diff options
Diffstat (limited to 'ospf6d/ospf6_interface.c')
| -rw-r--r-- | ospf6d/ospf6_interface.c | 10 |
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; } |
