summaryrefslogtreecommitdiff
path: root/ospfd/ospf_vty.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospf_vty.c')
-rw-r--r--ospfd/ospf_vty.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 791f9eb551..2d06e6884d 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -7865,10 +7865,9 @@ DEFUN (ip_ospf_message_digest_key,
}
key_id = strtol(keyid, NULL, 10);
- if (ospf_crypt_key_lookup(params->auth_crypt, key_id) != NULL) {
- vty_out(vty, "OSPF: Key %d already exists\n", key_id);
- return CMD_WARNING;
- }
+
+ /* Remove existing key, if any */
+ ospf_crypt_key_delete(params->auth_crypt, key_id);
ck = ospf_crypt_key_new();
ck->key_id = (uint8_t)key_id;
@@ -8968,9 +8967,12 @@ DEFUN (ip_ospf_area,
// update/create address-level params
params = ospf_get_if_params((ifp), (addr));
if (OSPF_IF_PARAM_CONFIGURED(params, if_area)) {
- vty_out(vty,
- "Must remove previous area/address config before changing ospf area\n");
- return CMD_WARNING_CONFIG_FAILED;
+ if (!IPV4_ADDR_SAME(&params->if_area, &area_id)) {
+ vty_out(vty,
+ "Must remove previous area/address config before changing ospf area\n");
+ return CMD_WARNING_CONFIG_FAILED;
+ } else
+ return CMD_SUCCESS;
}
ospf_if_update_params((ifp), (addr));
}