From 529aa94e24a39e8203efebbaf2fbc9f6de69fa52 Mon Sep 17 00:00:00 2001 From: Quentin Young Date: Sat, 15 Apr 2017 06:23:22 +0000 Subject: [PATCH 1/2] pimd: fix off-by-one in `no ip pim rp ...` Signed-off-by: Quentin Young --- pimd/pim_cmd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 0ce2525847..313414159c 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -3640,10 +3640,10 @@ DEFUN (no_ip_pim_rp, "ip address of RP\n" "Group Address range to cover\n") { - int idx_ipv4 = 4; + int idx_ipv4 = 4, idx_group = 0; - if (argc == (idx_ipv4 + 1)) - return pim_no_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_ipv4 + 1]->arg, NULL); + if (argv_find (argv, argc, "A.B.C.D/M", &idx_group)) + return pim_no_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_group]->arg, NULL); else return pim_no_rp_cmd_worker (vty, argv[idx_ipv4]->arg, NULL, NULL); } From 9ea49d61d2ea060c97066f445da65537f034772b Mon Sep 17 00:00:00 2001 From: Quentin Young Date: Mon, 17 Apr 2017 19:21:06 +0000 Subject: [PATCH 2/2] pimd: fix 'show ip msdp sa ...' Signed-off-by: Quentin Young --- pimd/pim_cmd.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 313414159c..2401991b8c 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -6212,13 +6212,16 @@ DEFUN (show_ip_msdp_sa_sg, "JavaScript Object Notation\n") { u_char uj = use_json(argc, argv); - if (uj) - argc--; - if (argc == 5) - ip_msdp_show_sa_sg(vty, argv[4]->arg, argv[5]->arg, uj); - else if (argc == 4) - ip_msdp_show_sa_addr(vty, argv[4]->arg, uj); + int idx = 0; + char *src_ip = argv_find (argv, argc, "A.B.C.D", &idx) ? argv[idx++]->arg : NULL; + char *grp_ip = idx < argc && argv_find (argv, argc, "A.B.C.D", &idx) ? + argv[idx]->arg : NULL; + + if (src_ip && grp_ip) + ip_msdp_show_sa_sg(vty, src_ip, grp_ip, uj); + else if (src_ip) + ip_msdp_show_sa_addr(vty, src_ip, uj); else ip_msdp_show_sa(vty, uj);