summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@cumulusnetworks.com>2017-04-17 19:21:06 +0000
committerQuentin Young <qlyoung@cumulusnetworks.com>2017-04-17 19:24:28 +0000
commit9ea49d61d2ea060c97066f445da65537f034772b (patch)
tree06671f76704c9c2e2097f65d80c0a97e6d6adf65
parent529aa94e24a39e8203efebbaf2fbc9f6de69fa52 (diff)
pimd: fix 'show ip msdp sa ...'
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
-rw-r--r--pimd/pim_cmd.c15
1 files 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);