]> git.proxmox.com Git - mirror_frr.git/commitdiff
pimd: fix 'show ip msdp sa ...'
authorQuentin Young <qlyoung@cumulusnetworks.com>
Mon, 17 Apr 2017 19:21:06 +0000 (19:21 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Mon, 17 Apr 2017 19:24:28 +0000 (19:24 +0000)
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
pimd/pim_cmd.c

index 313414159cf3772933a213b66955973d2646bd62..2401991b8cdc7de1c7c08a136ddd658418aad740 100644 (file)
@@ -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);