diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c index 59f03f5fc6..beb0a6b650 100644 --- a/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c @@ -9478,8 +9478,13 @@ DEFUN (ospf_distance, { VTY_DECLVAR_INSTANCE_CONTEXT(ospf, ospf); int idx_number = 1; + uint8_t distance; - ospf->distance_all = atoi(argv[idx_number]->arg); + distance = atoi(argv[idx_number]->arg); + if (ospf->distance_all != distance) { + ospf->distance_all = distance; + ospf_restart_spf(ospf); + } return CMD_SUCCESS; } @@ -9493,7 +9498,10 @@ DEFUN (no_ospf_distance, { VTY_DECLVAR_INSTANCE_CONTEXT(ospf, ospf); - ospf->distance_all = 0; + if (ospf->distance_all) { + ospf->distance_all = 0; + ospf_restart_spf(ospf); + } return CMD_SUCCESS; }