diff options
author | Chirag Shah <chirag@cumulusnetworks.com> | 2017-09-26 20:29:33 +0200 |
---|---|---|
committer | Chirag Shah <chirag@cumulusnetworks.com> | 2017-09-27 01:00:21 +0200 |
commit | 65536c82c3b5b784f21c65223b0ce374f74e0a04 (patch) | |
tree | e3109fd4656f39e1533766b8a350d7ad34655bd1 /ospfd/ospf_vty.c | |
parent | Merge pull request #1235 from chiragshah6/ospf_vrf_dev (diff) | |
download | frr-65536c82c3b5b784f21c65223b0ce374f74e0a04.tar.xz frr-65536c82c3b5b784f21c65223b0ce374f74e0a04.zip |
ospfd: fix virtual-link config command
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
Diffstat (limited to 'ospfd/ospf_vty.c')
-rw-r--r-- | ospfd/ospf_vty.c | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c index 4cbd4b4a9..4f0c27a33 100644 --- a/ospfd/ospf_vty.c +++ b/ospfd/ospf_vty.c @@ -1016,7 +1016,7 @@ DEFUN (ospf_area_vlink, } /* Deal with other parameters */ - for (i = 5; i < argc; i++) { + for (i = 4; i < argc; i++) { /* vty_out (vty, "argv[%d]->arg - %s\n", i, argv[i]->text); */ @@ -1027,10 +1027,8 @@ DEFUN (ospf_area_vlink, || strncmp(argv[i]->arg, "authentication-", 15) == 0) { /* authentication-key - this option can occur - anywhere on - command line. At start - of command line - must check for + anywhere on command line. At start + of command line must check for authentication option. */ memset(auth_key, 0, OSPF_AUTH_SIMPLE_SIZE + 1); strncpy(auth_key, argv[i + 1]->text, @@ -1040,8 +1038,7 @@ DEFUN (ospf_area_vlink, } else if (strncmp(argv[i]->arg, "authentication", 14) == 0) { /* authentication - this option can only occur - at start - of command line */ + at start of command line */ vl_config.auth_type = OSPF_AUTH_SIMPLE; if ((i + 1) < argc) { if (strncmp(argv[i + 1]->arg, "n", 1) @@ -1054,9 +1051,9 @@ DEFUN (ospf_area_vlink, strncmp(argv[i + 1]->arg, "m", 1) == 0 - && !strmatch( + && strmatch( argv[i + 1]->text, - "message-digest-")) { + "message-digest")) { /* "authentication * message-digest" */ vl_config.auth_type = @@ -1153,29 +1150,28 @@ DEFUN (no_ospf_area_vlink, /* If we are down here, we are reseting parameters */ /* Deal with other parameters */ - for (i = 6; i < argc; i++) { + for (i = 5; i < argc; i++) { /* vty_out (vty, "argv[%d] - %s\n", i, argv[i]); */ switch (argv[i]->arg[0]) { case 'a': - if (i > 2 + if (i > 6 || strncmp(argv[i]->text, "authentication-", 15) == 0) { /* authentication-key - this option can occur - anywhere on - command line. At start - of command line - must check for + anywhere on command line. At start + of command line must check for authentication option. */ memset(auth_key, 0, OSPF_AUTH_SIMPLE_SIZE + 1); vl_config.auth_key = auth_key; } else if (strncmp(argv[i]->text, "authentication", 14) == 0) { /* authentication - this option can only occur - at start - of command line */ + at start of command line */ vl_config.auth_type = OSPF_AUTH_NOTSET; + if ((i + 1) < argc) + i++; } break; @@ -1186,6 +1182,7 @@ DEFUN (no_ospf_area_vlink, if (i < argc) { vl_config.crypto_key_id = strtol(argv[i]->arg, NULL, 10); + i++; /* skip md5_key arg for delete */ if (vl_config.crypto_key_id < 0) return CMD_WARNING_CONFIG_FAILED; vl_config.md5_key = NULL; |