]> git.puffer.fish Git - mirror/frr.git/commitdiff
Quagga: Fixup cli and json keyword
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 18 Nov 2015 23:36:04 +0000 (15:36 -0800)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 18 Nov 2015 23:36:04 +0000 (15:36 -0800)
The json keyword was being read incorrectly.
Basically some commands read a variable # of arguments
and in ospf the command values were being placed into
argc and argv.  With a variable # of arguments their
existed a possibility that less arguments would be read
from the cli than were being tested for in the command function
handler.  This caused core dumps in some situations.

All code to read to decide to use the json keyword has
been centralized through a function and all code
converted to use it, irrelevant if it exhibited the bug

Ticket: CM-8278
Reviewed by: CCR-3830
Testing: OSPF no longer crashes and all other test suites still run

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_mplsvpn.c
bgpd/bgp_route.c
bgpd/bgp_vty.c
lib/json.c
lib/json.h
ospfd/ospf_vty.c

index d3081887c409c05b2e6f161a39d99f7d1ca28f96..e3aa9305d5fe66c8c0b2e5d44334f670d3850479 100644 (file)
@@ -760,12 +760,12 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_routes,
   union sockunion su;
   struct peer *peer;
   int ret;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   ret = str2sockunion (argv[0], &su);
   if (ret < 0)
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -781,7 +781,7 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_routes,
   peer = peer_lookup (NULL, &su);
   if (! peer || ! peer->afc[AFI_IP][SAFI_MPLS_VPN])
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -794,7 +794,7 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_routes,
       return CMD_WARNING;
     }
 
-  return bgp_show_mpls_vpn (vty, NULL, bgp_show_type_neighbor, &su, 0, use_json);
+  return bgp_show_mpls_vpn (vty, NULL, bgp_show_type_neighbor, &su, 0, uj);
 }
 
 DEFUN (show_ip_bgp_vpnv4_rd_neighbor_routes,
@@ -815,12 +815,12 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_routes,
   union sockunion su;
   struct peer *peer;
   struct prefix_rd prd;
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
 
   ret = str2prefix_rd (argv[0], &prd);
   if (! ret)
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -836,7 +836,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_routes,
   ret = str2sockunion (argv[1], &su);
   if (ret < 0)
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -852,7 +852,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_routes,
   peer = peer_lookup (NULL, &su);
   if (! peer || ! peer->afc[AFI_IP][SAFI_MPLS_VPN])
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -865,7 +865,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_routes,
       return CMD_WARNING;
     }
 
-  return bgp_show_mpls_vpn (vty, &prd, bgp_show_type_neighbor, &su, 0, use_json);
+  return bgp_show_mpls_vpn (vty, &prd, bgp_show_type_neighbor, &su, 0, uj);
 }
 
 DEFUN (show_ip_bgp_vpnv4_all_neighbor_advertised_routes,
@@ -884,12 +884,12 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_advertised_routes,
   int ret;
   struct peer *peer;
   union sockunion su;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   ret = str2sockunion (argv[0], &su);
   if (ret < 0)
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -904,7 +904,7 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_advertised_routes,
   peer = peer_lookup (NULL, &su);
   if (! peer || ! peer->afc[AFI_IP][SAFI_MPLS_VPN])
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -917,7 +917,7 @@ DEFUN (show_ip_bgp_vpnv4_all_neighbor_advertised_routes,
       return CMD_WARNING;
     }
 
-  return show_adj_route_vpn (vty, peer, NULL, use_json);
+  return show_adj_route_vpn (vty, peer, NULL, uj);
 }
 
 DEFUN (show_ip_bgp_vpnv4_rd_neighbor_advertised_routes,
@@ -938,12 +938,12 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_advertised_routes,
   struct peer *peer;
   struct prefix_rd prd;
   union sockunion su;
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
 
   ret = str2sockunion (argv[1], &su);
   if (ret < 0)
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -958,7 +958,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_advertised_routes,
   peer = peer_lookup (NULL, &su);
   if (! peer || ! peer->afc[AFI_IP][SAFI_MPLS_VPN])
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -974,7 +974,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_advertised_routes,
   ret = str2prefix_rd (argv[0], &prd);
   if (! ret)
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -987,7 +987,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_neighbor_advertised_routes,
       return CMD_WARNING;
     }
 
-  return show_adj_route_vpn (vty, peer, &prd, use_json);
+  return show_adj_route_vpn (vty, peer, &prd, uj);
 }
 
 void
index 02b629e2e5f4d0119175ff62e491a4444639f4f9..594794da2ee2eb07e9fa0078079d81ad686b4158 100644 (file)
@@ -7483,8 +7483,7 @@ DEFUN (show_ip_bgp,
        BGP_STR
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[0] != NULL);
-  return bgp_show (vty, NULL, AFI_IP, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json);
+  return bgp_show (vty, NULL, AFI_IP, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json(argc, argv));
 }
 
 DEFUN (show_ip_bgp_ipv4,
@@ -7498,13 +7497,13 @@ DEFUN (show_ip_bgp_ipv4,
        "Address Family modifier\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if (strncmp (argv[0], "m", 1) == 0)
     return bgp_show (vty, NULL, AFI_IP, SAFI_MULTICAST, bgp_show_type_normal,
-                     NULL, use_json);
+                     NULL, uj);
  
-  return bgp_show (vty, NULL, AFI_IP, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json);
+  return bgp_show (vty, NULL, AFI_IP, SAFI_UNICAST, bgp_show_type_normal, NULL, uj);
 }
 
 ALIAS (show_ip_bgp_ipv4,
@@ -7526,8 +7525,7 @@ DEFUN (show_ip_bgp_route,
        "Network in the BGP routing table to display\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 DEFUN (show_ip_bgp_route_pathtype,
@@ -7541,12 +7539,12 @@ DEFUN (show_ip_bgp_route_pathtype,
        "Display only multipaths\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if (strncmp (argv[1], "b", 1) == 0)
-    return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, use_json);
+    return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj);
   else
-    return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, use_json);
+    return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj);
 }
 
 DEFUN (show_bgp_ipv4_safi_route_pathtype,
@@ -7562,18 +7560,18 @@ DEFUN (show_bgp_ipv4_safi_route_pathtype,
        "Display only multipaths\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[3] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if (strncmp (argv[0], "m", 1) == 0)
     if (strncmp (argv[2], "b", 1) == 0)
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_BESTPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_BESTPATH, uj);
     else
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_MULTIPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_MULTIPATH, uj);
   else
     if (strncmp (argv[2], "b", 1) == 0)
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj);
     else
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj);
 }
 
 DEFUN (show_ip_bgp_ipv4_route,
@@ -7588,12 +7586,12 @@ DEFUN (show_ip_bgp_ipv4_route,
        "Network in the BGP routing table to display\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if (strncmp (argv[0], "m", 1) == 0)
-    return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, use_json);
+    return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, uj);
 
-  return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, uj);
 }
 
 ALIAS (show_ip_bgp_ipv4_route,
@@ -7618,8 +7616,7 @@ DEFUN (show_ip_bgp_vpnv4_all_route,
        "Network in the BGP routing table to display\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_MPLS_VPN, NULL, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_MPLS_VPN, NULL, 0, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 
@@ -7637,7 +7634,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_route,
 {
   int ret;
   struct prefix_rd prd;
-  u_char use_json = (argv[2] != NULL);
+  u_char uj= use_json(argc, argv);
 
   ret = str2prefix_rd (argv[0], &prd);
   if (! ret)
@@ -7645,7 +7642,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_route,
       vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE);
       return CMD_WARNING;
     }
-  return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, uj);
 }
 
 DEFUN (show_ip_bgp_prefix,
@@ -7657,8 +7654,7 @@ DEFUN (show_ip_bgp_prefix,
        "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 DEFUN (show_ip_bgp_prefix_pathtype,
@@ -7672,11 +7668,11 @@ DEFUN (show_ip_bgp_prefix_pathtype,
        "Display only multipaths\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[1], "b", 1) == 0)
-    return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, use_json);
+    return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj);
   else
-    return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, use_json);
+    return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj);
 }
 
 DEFUN (show_ip_bgp_ipv4_prefix,
@@ -7691,12 +7687,12 @@ DEFUN (show_ip_bgp_ipv4_prefix,
        "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if (strncmp (argv[0], "m", 1) == 0)
-    return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, use_json);
+    return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, uj);
 
-  return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, uj);
 }
 
 ALIAS (show_ip_bgp_ipv4_prefix,
@@ -7724,18 +7720,18 @@ DEFUN (show_ip_bgp_ipv4_prefix_pathtype,
        "Display only multipaths\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[3] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if (strncmp (argv[0], "m", 1) == 0)
     if (strncmp (argv[2], "b", 1) == 0)
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_BESTPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_BESTPATH, uj);
     else
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_MULTIPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MULTICAST, NULL, 1, BGP_PATH_MULTIPATH, uj);
   else
     if (strncmp (argv[2], "b", 1) == 0)
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj);
     else
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj);
 }
 
 ALIAS (show_ip_bgp_ipv4_prefix_pathtype,
@@ -7762,8 +7758,7 @@ DEFUN (show_ip_bgp_vpnv4_all_prefix,
        "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_MPLS_VPN, NULL, 1, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP, SAFI_MPLS_VPN, NULL, 1, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 DEFUN (show_ip_bgp_vpnv4_rd_prefix,
@@ -7780,7 +7775,6 @@ DEFUN (show_ip_bgp_vpnv4_rd_prefix,
 {
   int ret;
   struct prefix_rd prd;
-  u_char use_json = (argv[2] != NULL);
 
   ret = str2prefix_rd (argv[0], &prd);
   if (! ret)
@@ -7788,7 +7782,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_prefix,
       vty_out (vty, "%% Malformed Route Distinguisher%s", VTY_NEWLINE);
       return CMD_WARNING;
     }
-  return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[1], AFI_IP, SAFI_MPLS_VPN, &prd, 0, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 DEFUN (show_ip_bgp_view,
@@ -7802,7 +7796,6 @@ DEFUN (show_ip_bgp_view,
        "JavaScript Object Notation\n")
 {
   struct bgp *bgp;
-  u_char use_json = (argv[1] != NULL);
 
   /* BGP structure lookup. */
   bgp = bgp_lookup_by_name (argv[0]);
@@ -7812,7 +7805,7 @@ DEFUN (show_ip_bgp_view,
          return CMD_WARNING;
        }
 
-  return bgp_show (vty, bgp, AFI_IP, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json);
+  return bgp_show (vty, bgp, AFI_IP, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json(argc, argv));
 }
 
 DEFUN (show_ip_bgp_view_route,
@@ -7826,8 +7819,7 @@ DEFUN (show_ip_bgp_view_route,
        "Network in the BGP routing table to display\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
-  return bgp_show_route (vty, argv[0], argv[1], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, argv[0], argv[1], AFI_IP, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 DEFUN (show_ip_bgp_view_prefix,
@@ -7841,8 +7833,7 @@ DEFUN (show_ip_bgp_view_prefix,
        "IP prefix <network>/<length>, e.g., 35.0.0.0/8\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
-  return bgp_show_route (vty, argv[0], argv[1], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, argv[0], argv[1], AFI_IP, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 #ifdef HAVE_IPV6
@@ -7853,9 +7844,8 @@ DEFUN (show_bgp,
        BGP_STR
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[0] != NULL);
   return bgp_show (vty, NULL, AFI_IP6, SAFI_UNICAST, bgp_show_type_normal,
-                   NULL, use_json);
+                   NULL, use_json(argc, argv));
 }
 
 ALIAS (show_bgp,
@@ -7876,12 +7866,12 @@ DEFUN (show_bgp_ipv6_safi,
        "Address Family modifier\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[0], "m", 1) == 0)
     return bgp_show (vty, NULL, AFI_IP6, SAFI_MULTICAST, bgp_show_type_normal,
-                     NULL, use_json);
+                     NULL, uj);
 
-  return bgp_show (vty, NULL, AFI_IP6, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json);
+  return bgp_show (vty, NULL, AFI_IP6, SAFI_UNICAST, bgp_show_type_normal, NULL, uj);
 }
 
 static void
@@ -7901,10 +7891,9 @@ DEFUN (show_ipv6_bgp,
        BGP_STR
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[0] != NULL);
   bgp_show_ipv6_bgp_deprecate_warning(vty);
   return bgp_show (vty, NULL, AFI_IP6, SAFI_UNICAST, bgp_show_type_normal,
-                   NULL, use_json);
+                   NULL, use_json(argc, argv));
 }
 
 DEFUN (show_bgp_route,
@@ -7915,8 +7904,7 @@ DEFUN (show_bgp_route,
        "Network in the BGP routing table to display\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 ALIAS (show_bgp_route,
@@ -7939,11 +7927,11 @@ DEFUN (show_bgp_ipv6_safi_route,
        "Network in the BGP routing table to display\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[0], "m", 1) == 0)
-    return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, use_json);
+    return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, uj);
 
-  return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, uj);
 }
 
 DEFUN (show_bgp_route_pathtype,
@@ -7956,11 +7944,11 @@ DEFUN (show_bgp_route_pathtype,
        "Display only multipaths\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[1], "b", 1) == 0)
-    return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, use_json);
+    return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj);
   else
-    return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, use_json);
+    return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj);
 }
 
 ALIAS (show_bgp_route_pathtype,
@@ -7987,17 +7975,17 @@ DEFUN (show_bgp_ipv6_safi_route_pathtype,
        "Display only multipaths\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[3] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[0], "m", 1) == 0)
     if (strncmp (argv[2], "b", 1) == 0)
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_BESTPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_BESTPATH, uj);
     else
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_MULTIPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_MULTIPATH, uj);
   else
     if (strncmp (argv[2], "b", 1) == 0)
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_BESTPATH, uj);
     else
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_MULTIPATH, uj);
 }
 
 /* old command */
@@ -8010,9 +7998,8 @@ DEFUN (show_ipv6_bgp_route,
        "Network in the BGP routing table to display\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
   bgp_show_ipv6_bgp_deprecate_warning(vty);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 DEFUN (show_bgp_prefix,
@@ -8023,8 +8010,7 @@ DEFUN (show_bgp_prefix,
        "IPv6 prefix <network>/<length>\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 ALIAS (show_bgp_prefix,
@@ -8047,11 +8033,11 @@ DEFUN (show_bgp_ipv6_safi_prefix,
        "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[0], "m", 1) == 0)
-    return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, use_json);
+    return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, uj);
 
-  return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, uj);
 }
 
 DEFUN (show_bgp_prefix_pathtype,
@@ -8064,11 +8050,11 @@ DEFUN (show_bgp_prefix_pathtype,
        "Display only multipaths\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[1], "b", 1) == 0)
-    return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, use_json);
+    return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj);
   else
-    return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, use_json);
+    return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj);
 }
 
 ALIAS (show_bgp_prefix_pathtype,
@@ -8095,17 +8081,17 @@ DEFUN (show_bgp_ipv6_safi_prefix_pathtype,
        "Display only multipaths\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[3] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[0], "m", 1) == 0)
     if (strncmp (argv[2], "b", 1) == 0)
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_BESTPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_BESTPATH, uj);
     else
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_MULTIPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_MULTIPATH, uj);
   else
     if (strncmp (argv[2], "b", 1) == 0)
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_BESTPATH, uj);
     else
-      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, use_json);
+      return bgp_show_route (vty, NULL, argv[1], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_MULTIPATH, uj);
 }
 
 /* old command */
@@ -8118,9 +8104,8 @@ DEFUN (show_ipv6_bgp_prefix,
        "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
   bgp_show_ipv6_bgp_deprecate_warning(vty);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 DEFUN (show_bgp_view,
@@ -8133,17 +8118,16 @@ DEFUN (show_bgp_view,
        "JavaScript Object Notation\n")
 {
   struct bgp *bgp;
-  u_char use_json = (argv[1] != NULL);
 
   /* BGP structure lookup. */
   bgp = bgp_lookup_by_name (argv[0]);
   if (bgp == NULL)
-       {
-         vty_out (vty, "Can't find BGP view %s%s", argv[0], VTY_NEWLINE);
-         return CMD_WARNING;
-       }
-  
-  return bgp_show (vty, bgp, AFI_IP6, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json);
+    {
+      vty_out (vty, "Can't find BGP view %s%s", argv[0], VTY_NEWLINE);
+      return CMD_WARNING;
+    }
+
+  return bgp_show (vty, bgp, AFI_IP6, SAFI_UNICAST, bgp_show_type_normal, NULL, use_json(argc, argv));
 }
 
 ALIAS (show_bgp_view,
@@ -8166,8 +8150,7 @@ DEFUN (show_bgp_view_route,
        "Network in the BGP routing table to display\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
-  return bgp_show_route (vty, argv[0], argv[1], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, argv[0], argv[1], AFI_IP6, SAFI_UNICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 ALIAS (show_bgp_view_route,
@@ -8191,8 +8174,7 @@ DEFUN (show_bgp_view_prefix,
        "IPv6 prefix <network>/<length>\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
-  return bgp_show_route (vty, argv[0], argv[1], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, argv[0], argv[1], AFI_IP6, SAFI_UNICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 ALIAS (show_bgp_view_prefix,
@@ -8215,10 +8197,9 @@ DEFUN (show_ipv6_mbgp,
        MBGP_STR
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[0] != NULL);
   bgp_show_ipv6_bgp_deprecate_warning(vty);
   return bgp_show (vty, NULL, AFI_IP6, SAFI_MULTICAST, bgp_show_type_normal,
-                   NULL, use_json);
+                   NULL, use_json(argc, argv));
 }
 
 /* old command */
@@ -8231,9 +8212,8 @@ DEFUN (show_ipv6_mbgp_route,
        "Network in the MBGP routing table to display\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
   bgp_show_ipv6_bgp_deprecate_warning(vty);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_MULTICAST, NULL, 0, BGP_PATH_ALL, use_json(argc, argv));
 }
 
 /* old command */
@@ -8246,9 +8226,8 @@ DEFUN (show_ipv6_mbgp_prefix,
        "IPv6 prefix <network>/<length>, e.g., 3ffe::/16\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
   bgp_show_ipv6_bgp_deprecate_warning(vty);
-  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, use_json);
+  return bgp_show_route (vty, NULL, argv[0], AFI_IP6, SAFI_MULTICAST, NULL, 1, BGP_PATH_ALL, use_json(argc, argv));
 }
 #endif
 
@@ -11020,18 +10999,13 @@ DEFUN (show_ip_bgp_neighbor_prefix_counts,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
   if (! peer) 
     return CMD_WARNING;
  
-  return bgp_peer_counts (vty, peer, AFI_IP, SAFI_UNICAST, use_json);
+  return bgp_peer_counts (vty, peer, AFI_IP, SAFI_UNICAST, uj);
 }
 
 DEFUN (show_bgp_ipv6_neighbor_prefix_counts,
@@ -11048,18 +11022,13 @@ DEFUN (show_bgp_ipv6_neighbor_prefix_counts,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
+  u_char uj = use_json(argc, argv);
 
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
-
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
   if (! peer) 
     return CMD_WARNING;
  
-  return bgp_peer_counts (vty, peer, AFI_IP6, SAFI_UNICAST, use_json);
+  return bgp_peer_counts (vty, peer, AFI_IP6, SAFI_UNICAST, uj);
 }
 
 DEFUN (show_ip_bgp_ipv4_neighbor_prefix_counts,
@@ -11079,21 +11048,16 @@ DEFUN (show_ip_bgp_ipv4_neighbor_prefix_counts,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[1], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[1], uj);
   if (! peer)
     return CMD_WARNING;
 
   if (strncmp (argv[0], "m", 1) == 0)
-    return bgp_peer_counts (vty, peer, AFI_IP, SAFI_MULTICAST, use_json);
+    return bgp_peer_counts (vty, peer, AFI_IP, SAFI_MULTICAST, uj);
 
-  return bgp_peer_counts (vty, peer, AFI_IP, SAFI_UNICAST, use_json);
+  return bgp_peer_counts (vty, peer, AFI_IP, SAFI_UNICAST, uj);
 }
 
 DEFUN (show_ip_bgp_vpnv4_neighbor_prefix_counts,
@@ -11113,18 +11077,13 @@ DEFUN (show_ip_bgp_vpnv4_neighbor_prefix_counts,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
   if (! peer)
     return CMD_WARNING;
   
-  return bgp_peer_counts (vty, peer, AFI_IP, SAFI_MPLS_VPN, use_json);
+  return bgp_peer_counts (vty, peer, AFI_IP, SAFI_MPLS_VPN, uj);
 }
 
 static void
@@ -11382,23 +11341,17 @@ DEFUN (show_ip_bgp_view_neighbor_advertised_route,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   if (argc == 3 || (argc == 2 && argv[1] && strcmp(argv[1], "json") != 0))
-    peer = peer_lookup_in_view (vty, argv[0], argv[1], use_json);
+    peer = peer_lookup_in_view (vty, argv[0], argv[1], uj);
   else
-    peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+    peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
 
   if (! peer) 
     return CMD_WARNING;
 
-  return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 0, NULL, use_json);
+  return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 0, NULL, uj);
 }
 
 DEFUN (show_ip_bgp_neighbor_advertised_route,
@@ -11417,14 +11370,9 @@ DEFUN (show_ip_bgp_neighbor_advertised_route,
 {
   struct peer *peer;
   const char *rmap_name = NULL;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
 
   if (! peer)
     return CMD_WARNING;
@@ -11433,7 +11381,7 @@ DEFUN (show_ip_bgp_neighbor_advertised_route,
       || (argc == 3))
     rmap_name = argv[1];
 
-  return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 0, rmap_name, use_json);
+  return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 0, rmap_name, uj);
 }
 
 ALIAS (show_ip_bgp_neighbor_advertised_route,
@@ -11467,14 +11415,9 @@ DEFUN (show_ip_bgp_ipv4_neighbor_advertised_route,
 {
   struct peer *peer;
   const char *rmap_name = NULL;
-  u_char use_json;
+  u_char uj = use_json(argc, argv); 
 
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
-
-  peer = peer_lookup_in_view (vty, NULL, argv[1], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[1], uj);
   if (! peer)
     return CMD_WARNING;
 
@@ -11482,9 +11425,9 @@ DEFUN (show_ip_bgp_ipv4_neighbor_advertised_route,
     rmap_name = argv[2];
 
   if (strncmp (argv[0], "m", 1) == 0)
-    return peer_adj_routes (vty, peer, AFI_IP, SAFI_MULTICAST, 0, rmap_name, use_json);
+    return peer_adj_routes (vty, peer, AFI_IP, SAFI_MULTICAST, 0, rmap_name, uj);
   else
-    return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 0, rmap_name, use_json);
+    return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 0, rmap_name, uj);
 }
 
 ALIAS (show_ip_bgp_ipv4_neighbor_advertised_route,
@@ -11520,22 +11463,17 @@ DEFUN (show_bgp_view_neighbor_advertised_route,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   if (argc == 3 || (argc == 2 && argv[1] && strcmp(argv[1], "json") != 0))
-    peer = peer_lookup_in_view (vty, argv[0], argv[1], use_json);
+    peer = peer_lookup_in_view (vty, argv[0], argv[1], uj);
   else
-    peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+    peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
 
   if (! peer)
     return CMD_WARNING;
 
-  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_UNICAST, 0, NULL, use_json);
+  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_UNICAST, 0, NULL, uj);
 }
 
 ALIAS (show_bgp_view_neighbor_advertised_route,
@@ -11568,14 +11506,9 @@ DEFUN (show_bgp_neighbor_advertised_route,
 {
   struct peer *peer;
   const char *rmap_name = NULL;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
 
   if (!peer)
     return CMD_WARNING;
@@ -11583,7 +11516,7 @@ DEFUN (show_bgp_neighbor_advertised_route,
   if (argc == 3 || (argc == 2 && argv[1] && strcmp(argv[1], "json") != 0))
     rmap_name = argv[1];
 
-  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_UNICAST, 0, rmap_name, use_json);
+  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_UNICAST, 0, rmap_name, uj);
 }
 
 ALIAS (show_bgp_neighbor_advertised_route,
@@ -11629,19 +11562,14 @@ DEFUN (ipv6_mbgp_neighbor_advertised_route,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
+  u_char uj = use_json(argc, argv);
 
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
-
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
   if (! peer)
     return CMD_WARNING;
 
   bgp_show_ipv6_bgp_deprecate_warning(vty);
-  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_MULTICAST, 0, NULL, use_json);
+  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_MULTICAST, 0, NULL, uj);
 }
 #endif /* HAVE_IPV6 */
 
@@ -11660,32 +11588,27 @@ DEFUN (show_bgp_view_neighbor_received_routes,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  if (use_json)
+  if (uj)
     {
       if (argc == 3)
-        peer = peer_lookup_in_view (vty, argv[0], argv[1], use_json);
+        peer = peer_lookup_in_view (vty, argv[0], argv[1], uj);
       else
-        peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+        peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
     }
   else
     {
       if (argc == 2)
-        peer = peer_lookup_in_view (vty, argv[0], argv[1], use_json);
+        peer = peer_lookup_in_view (vty, argv[0], argv[1], uj);
       else
-        peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+        peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
     }
 
   if (! peer)
     return CMD_WARNING;
 
-  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_UNICAST, 1, NULL, use_json);
+  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_UNICAST, 1, NULL, uj);
 }
 
 DEFUN (show_ip_bgp_view_neighbor_received_routes,
@@ -11704,22 +11627,17 @@ DEFUN (show_ip_bgp_view_neighbor_received_routes,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   if (argc == 3 || (argc == 2 && argv[1] && strcmp(argv[1], "json") != 0))
-    peer = peer_lookup_in_view (vty, argv[0], argv[1], use_json);
+    peer = peer_lookup_in_view (vty, argv[0], argv[1], uj);
   else
-    peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+    peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
 
   if (! peer)
     return CMD_WARNING;
 
-  return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 1, NULL, use_json);
+  return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 1, NULL, uj);
 }
 
 ALIAS (show_bgp_view_neighbor_received_routes,
@@ -11753,14 +11671,9 @@ DEFUN (show_ip_bgp_neighbor_received_routes,
 {
   struct peer *peer;
   const char *rmap_name = NULL;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
 
   if (! peer)
     return CMD_WARNING;
@@ -11768,7 +11681,7 @@ DEFUN (show_ip_bgp_neighbor_received_routes,
   if (argc == 3 || (argc == 2 && argv[1] && strcmp(argv[1], "json") != 0))
     rmap_name = argv[1];
 
-  return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 1, rmap_name, use_json);
+  return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 1, rmap_name, uj);
 }
 
 ALIAS (show_ip_bgp_neighbor_received_routes,
@@ -11802,14 +11715,9 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_routes,
 {
   struct peer *peer;
   const char *rmap_name = NULL;
-  u_char use_json;
+  u_char uj = use_json(argc, argv);
 
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
-
-  peer = peer_lookup_in_view (vty, NULL, argv[1], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[1], uj);
   if (! peer)
     return CMD_WARNING;
 
@@ -11817,9 +11725,9 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_routes,
     rmap_name = argv[2];
 
   if (strncmp (argv[0], "m", 1) == 0)
-    return peer_adj_routes (vty, peer, AFI_IP, SAFI_MULTICAST, 1, rmap_name, use_json);
+    return peer_adj_routes (vty, peer, AFI_IP, SAFI_MULTICAST, 1, rmap_name, uj);
   else
-    return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 1, rmap_name, use_json);
+    return peer_adj_routes (vty, peer, AFI_IP, SAFI_UNICAST, 1, rmap_name, uj);
 }
 
 ALIAS (show_ip_bgp_ipv4_neighbor_received_routes,
@@ -11867,33 +11775,18 @@ DEFUN (show_bgp_view_afi_safi_neighbor_adv_recd_routes,
   int safi;
   int in;
   struct peer *peer;
-  u_char use_json;
+  u_char uj = use_json(argc, argv);
 
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
-
-#ifdef HAVE_IPV6
-    peer = peer_lookup_in_view (vty, argv[0], argv[3], use_json);
-#else
-    peer = peer_lookup_in_view (vty, argv[0], argv[2], use_json);
-#endif
+  peer = peer_lookup_in_view (vty, argv[0], argv[3], uj);
 
   if (! peer)
     return CMD_WARNING;
 
-#ifdef HAVE_IPV6
   afi = (strncmp (argv[1], "ipv6", 4) == 0) ? AFI_IP6 : AFI_IP;
   safi = (strncmp (argv[2], "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST;
   in = (strncmp (argv[4], "r", 1) == 0) ? 1 : 0;
-#else
-  afi = AFI_IP;
-  safi = (strncmp (argv[1], "m", 1) == 0) ? SAFI_MULTICAST : SAFI_UNICAST;
-  in = (strncmp (argv[3], "r", 1) == 0) ? 1 : 0;
-#endif
 
-  return peer_adj_routes (vty, peer, afi, safi, in, NULL, use_json);
+  return peer_adj_routes (vty, peer, afi, safi, in, NULL, uj);
 }
 
 DEFUN (show_ip_bgp_neighbor_received_prefix_filter,
@@ -11914,12 +11807,7 @@ DEFUN (show_ip_bgp_neighbor_received_prefix_filter,
   union sockunion su;
   struct peer *peer;
   int count, ret;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   ret = str2sockunion (argv[0], &su);
   if (ret < 0)
@@ -11927,7 +11815,7 @@ DEFUN (show_ip_bgp_neighbor_received_prefix_filter,
       peer = peer_lookup_by_conf_if (NULL, argv[0]);
       if (! peer)
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_object *json_sub = NULL;
@@ -11949,7 +11837,7 @@ DEFUN (show_ip_bgp_neighbor_received_prefix_filter,
       peer = peer_lookup (NULL, &su);
       if (! peer)
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_no = json_object_new_object();
@@ -11964,16 +11852,16 @@ DEFUN (show_ip_bgp_neighbor_received_prefix_filter,
     }
 
   sprintf (name, "%s.%d.%d", peer->host, AFI_IP, SAFI_UNICAST);
-  count =  prefix_bgp_show_prefix_list (NULL, AFI_IP, name, use_json);
+  count =  prefix_bgp_show_prefix_list (NULL, AFI_IP, name, uj);
   if (count)
     {
-      if (!use_json)
+      if (!uj)
         vty_out (vty, "Address family: IPv4 Unicast%s", VTY_NEWLINE);
-      prefix_bgp_show_prefix_list (vty, AFI_IP, name, use_json);
+      prefix_bgp_show_prefix_list (vty, AFI_IP, name, uj);
     }
   else
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -12009,12 +11897,7 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter,
   union sockunion su;
   struct peer *peer;
   int count, ret;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   ret = str2sockunion (argv[1], &su);
   if (ret < 0)
@@ -12022,7 +11905,7 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter,
       peer = peer_lookup_by_conf_if (NULL, argv[1]);
       if (! peer)
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_object *json_sub = NULL;
@@ -12044,7 +11927,7 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter,
       peer = peer_lookup (NULL, &su);
       if (! peer)
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_no = json_object_new_object();
@@ -12061,16 +11944,16 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter,
   if (strncmp (argv[0], "m", 1) == 0)
     {
       sprintf (name, "%s.%d.%d", peer->host, AFI_IP, SAFI_MULTICAST);
-      count =  prefix_bgp_show_prefix_list (NULL, AFI_IP, name, use_json);
+      count =  prefix_bgp_show_prefix_list (NULL, AFI_IP, name, uj);
       if (count)
         {
-          if (!use_json)
+          if (!uj)
             vty_out (vty, "Address family: IPv4 Multicast%s", VTY_NEWLINE);
-          prefix_bgp_show_prefix_list (vty, AFI_IP, name, use_json);
+          prefix_bgp_show_prefix_list (vty, AFI_IP, name, uj);
         }
       else
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_no = json_object_new_object();
@@ -12085,16 +11968,16 @@ DEFUN (show_ip_bgp_ipv4_neighbor_received_prefix_filter,
   else 
     {
       sprintf (name, "%s.%d.%d", peer->host, AFI_IP, SAFI_UNICAST);
-      count =  prefix_bgp_show_prefix_list (NULL, AFI_IP, name, use_json);
+      count =  prefix_bgp_show_prefix_list (NULL, AFI_IP, name, uj);
       if (count)
         {
-          if (!use_json)
+          if (!uj)
             vty_out (vty, "Address family: IPv4 Unicast%s", VTY_NEWLINE);
-          prefix_bgp_show_prefix_list (vty, AFI_IP, name, use_json);
+          prefix_bgp_show_prefix_list (vty, AFI_IP, name, uj);
         }
       else
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_no = json_object_new_object();
@@ -12152,12 +12035,7 @@ DEFUN (show_bgp_neighbor_received_prefix_filter,
   union sockunion su;
   struct peer *peer;
   int count, ret;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   ret = str2sockunion (argv[0], &su);
   if (ret < 0)
@@ -12165,7 +12043,7 @@ DEFUN (show_bgp_neighbor_received_prefix_filter,
       peer = peer_lookup_by_conf_if (NULL, argv[0]);
       if (! peer)
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_object *json_sub = NULL;
@@ -12187,7 +12065,7 @@ DEFUN (show_bgp_neighbor_received_prefix_filter,
       peer = peer_lookup (NULL, &su);
       if (! peer)
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_no = json_object_new_object();
@@ -12202,16 +12080,16 @@ DEFUN (show_bgp_neighbor_received_prefix_filter,
     }
 
   sprintf (name, "%s.%d.%d", peer->host, AFI_IP6, SAFI_UNICAST);
-  count =  prefix_bgp_show_prefix_list (NULL, AFI_IP6, name, use_json);
+  count =  prefix_bgp_show_prefix_list (NULL, AFI_IP6, name, uj);
   if (count)
     {
-      if (!use_json)
+      if (!uj)
         vty_out (vty, "Address family: IPv6 Unicast%s", VTY_NEWLINE);
-      prefix_bgp_show_prefix_list (vty, AFI_IP6, name, use_json);
+      prefix_bgp_show_prefix_list (vty, AFI_IP6, name, uj);
     }
   else
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -12269,19 +12147,14 @@ DEFUN (ipv6_mbgp_neighbor_received_routes,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
   if (! peer)
     return CMD_WARNING;
 
   bgp_show_ipv6_bgp_deprecate_warning(vty);
-  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_MULTICAST, 1, NULL,use_json);
+  return peer_adj_routes (vty, peer, AFI_IP6, SAFI_MULTICAST, 1, NULL, uj);
 }
 
 DEFUN (show_bgp_view_neighbor_received_prefix_filter,
@@ -12304,18 +12177,13 @@ DEFUN (show_bgp_view_neighbor_received_prefix_filter,
   struct peer *peer;
   struct bgp *bgp;
   int count, ret;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   /* BGP structure lookup. */
   bgp = bgp_lookup_by_name (argv[0]);
   if (bgp == NULL)
     {
-      if (use_json)
+      if (uj)
         {
           json_object *json_no = NULL;
           json_no = json_object_new_object();
@@ -12334,7 +12202,7 @@ DEFUN (show_bgp_view_neighbor_received_prefix_filter,
       peer = peer_lookup_by_conf_if (bgp, argv[1]);
       if (! peer)
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_object *json_sub = NULL;
@@ -12356,7 +12224,7 @@ DEFUN (show_bgp_view_neighbor_received_prefix_filter,
       peer = peer_lookup (bgp, &su);
       if (! peer)
         {
-          if (use_json)
+          if (uj)
             {
               json_object *json_no = NULL;
               json_no = json_object_new_object();
@@ -12372,12 +12240,12 @@ DEFUN (show_bgp_view_neighbor_received_prefix_filter,
     }
 
   sprintf (name, "%s.%d.%d", peer->host, AFI_IP6, SAFI_UNICAST);
-  count =  prefix_bgp_show_prefix_list (NULL, AFI_IP6, name, use_json);
+  count =  prefix_bgp_show_prefix_list (NULL, AFI_IP6, name, uj);
   if (count)
     {
-      if (!use_json)
+      if (!uj)
         vty_out (vty, "Address family: IPv6 Unicast%s", VTY_NEWLINE);
-      prefix_bgp_show_prefix_list (vty, AFI_IP6, name, use_json);
+      prefix_bgp_show_prefix_list (vty, AFI_IP6, name, uj);
     }
 
   return CMD_SUCCESS;
@@ -12435,19 +12303,14 @@ DEFUN (show_ip_bgp_neighbor_routes,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
   if (! peer)
     return CMD_WARNING;
     
   return bgp_show_neighbor_route (vty, peer, AFI_IP, SAFI_UNICAST,
-                                 bgp_show_type_neighbor, use_json);
+                                 bgp_show_type_neighbor, uj);
 }
 
 DEFUN (show_ip_bgp_neighbor_flap,
@@ -12464,19 +12327,14 @@ DEFUN (show_ip_bgp_neighbor_flap,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
+  u_char uj = use_json(argc, argv);
 
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
-
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
   if (! peer)
     return CMD_WARNING;
     
   return bgp_show_neighbor_route (vty, peer, AFI_IP, SAFI_UNICAST,
-                                 bgp_show_type_flap_neighbor, use_json);
+                                 bgp_show_type_flap_neighbor, uj);
 }
 
 DEFUN (show_ip_bgp_neighbor_damp,
@@ -12493,19 +12351,14 @@ DEFUN (show_ip_bgp_neighbor_damp,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
+  u_char uj = use_json(argc, argv);
 
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
-
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
   if (! peer)
     return CMD_WARNING;
     
   return bgp_show_neighbor_route (vty, peer, AFI_IP, SAFI_UNICAST,
-                                 bgp_show_type_damp_neighbor, use_json);
+                                 bgp_show_type_damp_neighbor, uj);
 }
 
 DEFUN (show_ip_bgp_ipv4_neighbor_routes,
@@ -12525,23 +12378,18 @@ DEFUN (show_ip_bgp_ipv4_neighbor_routes,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[1], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[1], uj);
   if (! peer)
     return CMD_WARNING;
  
   if (strncmp (argv[0], "m", 1) == 0)
     return bgp_show_neighbor_route (vty, peer, AFI_IP, SAFI_MULTICAST,
-                                   bgp_show_type_neighbor, use_json);
+                                   bgp_show_type_neighbor, uj);
 
   return bgp_show_neighbor_route (vty, peer, AFI_IP, SAFI_UNICAST,
-                                 bgp_show_type_neighbor, use_json);
+                                 bgp_show_type_neighbor, uj);
 }
 
 #ifdef HAVE_IPV6
@@ -12560,24 +12408,19 @@ DEFUN (show_bgp_view_neighbor_routes,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   if ((argc == 3 && argv[2] && strcmp(argv[2], "json") == 0)
       || (argc == 2 && argv[1] && strcmp(argv[1], "json") != 0))
-    peer = peer_lookup_in_view (vty, argv[0], argv[1], use_json);
+    peer = peer_lookup_in_view (vty, argv[0], argv[1], uj);
   else
-    peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+    peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
    
   if (! peer)
     return CMD_WARNING;
 
   return bgp_show_neighbor_route (vty, peer, AFI_IP6, SAFI_UNICAST,
-                                 bgp_show_type_neighbor, use_json);
+                                 bgp_show_type_neighbor, uj);
 }
 
 ALIAS (show_bgp_view_neighbor_routes,
@@ -12610,24 +12453,19 @@ DEFUN (show_bgp_view_neighbor_damp,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   if ((argc == 3 && argv[2] && strcmp(argv[2], "json") == 0)
       || (argc == 2 && argv[1] && strcmp(argv[1], "json") != 0))
-    peer = peer_lookup_in_view (vty, argv[0], argv[1], use_json);
+    peer = peer_lookup_in_view (vty, argv[0], argv[1], uj);
   else
-    peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+    peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
 
   if (! peer)
     return CMD_WARNING;
 
   return bgp_show_neighbor_route (vty, peer, AFI_IP6, SAFI_UNICAST,
-                                 bgp_show_type_damp_neighbor, use_json);
+                                 bgp_show_type_damp_neighbor, uj);
 }
 
 ALIAS (show_bgp_view_neighbor_damp,
@@ -12660,24 +12498,19 @@ DEFUN (show_bgp_view_neighbor_flap,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   if ((argc == 3 && argv[2] && strcmp(argv[2], "json") == 0)
       || (argc == 2 && argv[1] && strcmp(argv[1], "json") != 0))
-    peer = peer_lookup_in_view (vty, argv[0], argv[1], use_json);
+    peer = peer_lookup_in_view (vty, argv[0], argv[1], uj);
   else
-    peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+    peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
 
   if (! peer)
     return CMD_WARNING;
 
   return bgp_show_neighbor_route (vty, peer, AFI_IP6, SAFI_UNICAST,
-                                 bgp_show_type_flap_neighbor, use_json);
+                                 bgp_show_type_flap_neighbor, uj);
 }
 
 ALIAS (show_bgp_view_neighbor_flap,
@@ -12750,20 +12583,15 @@ DEFUN (ipv6_mbgp_neighbor_routes,
        "JavaScript Object Notation\n")
 {
   struct peer *peer;
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  peer = peer_lookup_in_view (vty, NULL, argv[0], use_json);
+  peer = peer_lookup_in_view (vty, NULL, argv[0], uj);
   if (! peer)
     return CMD_WARNING;
  
   bgp_show_ipv6_bgp_deprecate_warning(vty);
   return bgp_show_neighbor_route (vty, peer, AFI_IP6, SAFI_MULTICAST,
-                                 bgp_show_type_neighbor, use_json);
+                                 bgp_show_type_neighbor, uj);
 }
 
 ALIAS (show_bgp_view_neighbor_flap,
index 53448da3491126577562587ee1cc4703c16887ae..6e218b85b802b2f28c37ede7f8008d9decbe01e7 100644 (file)
@@ -8485,8 +8485,8 @@ DEFUN (show_ip_bgp_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[0] != NULL);
-  return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_UNICAST, use_json);
+  u_char uj = use_json(argc, argv);
+  return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_UNICAST, uj);
 }
 
 DEFUN (show_ip_bgp_instance_summary,
@@ -8500,8 +8500,8 @@ DEFUN (show_ip_bgp_instance_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
-  return bgp_show_summary_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, use_json);
+  u_char uj = use_json(argc, argv);
+  return bgp_show_summary_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, uj);
 }
 
 DEFUN (show_ip_bgp_ipv4_summary, 
@@ -8516,11 +8516,11 @@ DEFUN (show_ip_bgp_ipv4_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[0], "m", 1) == 0)
-    return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, use_json);
+    return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_MULTICAST, uj);
 
-  return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_UNICAST, use_json);
+  return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_UNICAST, uj);
 }
 
 ALIAS (show_ip_bgp_ipv4_summary,
@@ -8547,11 +8547,11 @@ DEFUN (show_ip_bgp_instance_ipv4_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[1], "m", 1) == 0)
-    return bgp_show_summary_vty (vty, argv[0], AFI_IP, SAFI_MULTICAST, use_json);
+    return bgp_show_summary_vty (vty, argv[0], AFI_IP, SAFI_MULTICAST, uj);
   else
-    return bgp_show_summary_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, use_json);
+    return bgp_show_summary_vty (vty, argv[0], AFI_IP, SAFI_UNICAST, uj);
 }
 
 ALIAS (show_ip_bgp_instance_ipv4_summary,
@@ -8577,8 +8577,8 @@ DEFUN (show_ip_bgp_vpnv4_all_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[0] != NULL);
-  return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, use_json);
+  u_char uj = use_json(argc, argv);
+  return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, uj);
 }
 
 DEFUN (show_ip_bgp_vpnv4_rd_summary,
@@ -8595,7 +8595,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_summary,
 {
   int ret;
   struct prefix_rd prd;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   ret = str2prefix_rd (argv[0], &prd);
   if (! ret)
@@ -8604,7 +8604,7 @@ DEFUN (show_ip_bgp_vpnv4_rd_summary,
       return CMD_WARNING;
     }
 
-  return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, use_json);
+  return bgp_show_summary_vty (vty, NULL, AFI_IP, SAFI_MPLS_VPN, uj);
 }
 
 #ifdef HAVE_IPV6
@@ -8616,8 +8616,7 @@ DEFUN (show_bgp_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[0] != NULL);
-  return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, use_json);
+  return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, use_json(argc, argv));
 }
 
 DEFUN (show_bgp_instance_summary,
@@ -8630,8 +8629,7 @@ DEFUN (show_bgp_instance_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
-  return bgp_show_summary_vty (vty, argv[0], AFI_IP6, SAFI_UNICAST, use_json);
+  return bgp_show_summary_vty (vty, argv[0], AFI_IP6, SAFI_UNICAST, use_json(argc, argv));
 }
 
 ALIAS (show_bgp_summary, 
@@ -8663,11 +8661,11 @@ DEFUN (show_bgp_ipv6_safi_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[0], "m", 1) == 0)
-    return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_MULTICAST, use_json);
+    return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_MULTICAST, uj);
 
-  return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, use_json);
+  return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, uj);
 }
 
 DEFUN (show_bgp_instance_ipv6_safi_summary,
@@ -8683,11 +8681,11 @@ DEFUN (show_bgp_instance_ipv6_safi_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
   if (strncmp (argv[1], "m", 1) == 0)
-    return bgp_show_summary_vty (vty, argv[0], AFI_IP6, SAFI_MULTICAST, use_json);
+    return bgp_show_summary_vty (vty, argv[0], AFI_IP6, SAFI_MULTICAST, uj);
 
-  return bgp_show_summary_vty (vty, argv[0], AFI_IP6, SAFI_UNICAST, use_json);
+  return bgp_show_summary_vty (vty, argv[0], AFI_IP6, SAFI_UNICAST, uj);
 }
 
 /* old command */
@@ -8700,8 +8698,8 @@ DEFUN (show_ipv6_bgp_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[0] != NULL);
-  return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, use_json);
+  u_char uj = use_json(argc, argv);
+  return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_UNICAST, uj);
 }
 
 /* old command */
@@ -8714,8 +8712,8 @@ DEFUN (show_ipv6_mbgp_summary,
        "Summary of BGP neighbor status\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json = (argv[0] != NULL);
-  return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_MULTICAST, use_json);
+  u_char uj = use_json(argc, argv);
+  return bgp_show_summary_vty (vty, NULL, AFI_IP6, SAFI_MULTICAST, uj);
 }
 #endif /* HAVE_IPV6 */
 
@@ -10468,14 +10466,9 @@ DEFUN (show_ip_bgp_neighbors,
        "Detailed information on TCP and BGP neighbor connections\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json;
+  u_char uj = use_json(argc, argv);
 
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
-
-  return bgp_show_neighbor_vty (vty, NULL, show_all, NULL, use_json);
+  return bgp_show_neighbor_vty (vty, NULL, show_all, NULL, uj);
 }
 
 ALIAS (show_ip_bgp_neighbors,
@@ -10542,14 +10535,9 @@ DEFUN (show_ip_bgp_neighbors_peer,
        "Neighbor on bgp configured interface\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json;
-
-  if (argv[argc - 1] && strcmp(argv[argc - 1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  return bgp_show_neighbor_vty (vty, NULL, show_peer, argv[argc - 2], use_json);
+  return bgp_show_neighbor_vty (vty, NULL, show_peer, argv[argc - 2], uj);
 }
 
 ALIAS (show_ip_bgp_neighbors_peer,
@@ -10625,14 +10613,9 @@ DEFUN (show_ip_bgp_instance_neighbors,
        "Detailed information on TCP and BGP neighbor connections\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json;
+  u_char uj = use_json(argc, argv);
 
-  if (argv[1] && strcmp(argv[1], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
-
-  return bgp_show_neighbor_vty (vty, argv[0], show_all, NULL, use_json);
+  return bgp_show_neighbor_vty (vty, argv[0], show_all, NULL, uj);
 }
 
 ALIAS (show_ip_bgp_instance_neighbors,
@@ -10670,14 +10653,9 @@ DEFUN (show_ip_bgp_instance_neighbors_peer,
        "Neighbor on bgp configured interface\n"
        "JavaScript Object Notation\n")
 {
-  u_char use_json;
-
-  if (argv[2] && strcmp(argv[2], "json") == 0)
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
-  return bgp_show_neighbor_vty (vty, argv[0], show_peer, argv[1], use_json);
+  return bgp_show_neighbor_vty (vty, argv[0], show_peer, argv[1], uj);
 }
 
 ALIAS (show_ip_bgp_instance_neighbors_peer,
index 07b70e4f06b5b00d50041a29638734bf61a79bea..f78bfcd844414815bbe454ace7df7b2478165676 100644 (file)
  * 02111-1307, USA.
  */
 
+#include <string.h>
 #include "lib/json.h"
 
+/*
+ * This function assumes that the json keyword
+ * is the *last* keyword on the line no matter
+ * what.
+ */
+int
+use_json (const int argc, const char *argv[])
+{
+  if (argc == 0)
+    return 0;
+
+  if (argv[argc-1] && strcmp(argv[argc-1], "json") == 0)
+    return 1;
+
+  return 0;
+}
+
 void
 json_object_string_add(struct json_object* obj, const char *key,
                        const char *s)
index e9b1976b96902061d368c6d76cae351481b2eec5..e69b10acd21a758d586c20aa79934207874ff9aa 100644 (file)
@@ -24,6 +24,7 @@
 
 #include <json/json.h>
 
+extern int use_json(const int argc, const char *argv[]);
 extern void json_object_string_add(struct json_object* obj, const char *key,
                                    const char *s);
 extern void json_object_int_add(struct json_object* obj, const char *key,
index 22f38b212a0b9310ba0a15d73a985b62da9cfcb3..5132c7580a072c5fb994f1385de0f59b33d6d86f 100644 (file)
@@ -63,7 +63,6 @@ static const char *ospf_network_type_str[] =
   "LOOPBACK"
 };
 
-
 /* Utility functions. */
 static int
 ospf_str2area_id (const char *str, struct in_addr *area_id, int *format)
@@ -3517,12 +3516,12 @@ DEFUN (show_ip_ospf,
        "JavaScript Object Notation\n")
 {
   struct ospf *ospf;
-  u_char use_json = (argv[0] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if ((ospf = ospf_lookup()) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return (show_ip_ospf_common(vty, ospf, use_json));
+  return (show_ip_ospf_common(vty, ospf, uj));
 }
 
 DEFUN (show_ip_ospf_instance,
@@ -3536,13 +3535,13 @@ DEFUN (show_ip_ospf_instance,
 {
   struct ospf *ospf;
   u_short instance = 0;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   VTY_GET_INTEGER ("Instance", instance, argv[0]);
   if ((ospf = ospf_lookup_instance (instance)) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return (show_ip_ospf_common(vty, ospf, use_json));
+  return (show_ip_ospf_common(vty, ospf, uj));
 }
 
 static void
@@ -3912,18 +3911,12 @@ DEFUN (show_ip_ospf_interface,
        "JavaScript Object Notation\n")
 {
   struct ospf *ospf;
-  u_char use_json;
-
-  if ((argv[0] && strcmp(argv[0], "json") == 0) ||
-      (argv[1] && strcmp(argv[1], "json") == 0))
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   if ((ospf = ospf_lookup()) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_interface_common(vty, ospf, argc, argv, 0, use_json);
+  return show_ip_ospf_interface_common(vty, ospf, argc, argv, 0, uj);
 }
 
 DEFUN (show_ip_ospf_instance_interface,
@@ -3939,19 +3932,13 @@ DEFUN (show_ip_ospf_instance_interface,
 {
   struct ospf *ospf;
   u_short instance = 0;
-  u_char use_json;
-
-  if ((argv[1] && strcmp(argv[1], "json") == 0) ||
-      (argv[2] && strcmp(argv[2], "json") == 0))
-    use_json = 1;
-  else
-    use_json = 0;
+  u_char uj = use_json(argc, argv);
 
   VTY_GET_INTEGER ("Instance", instance, argv[0]);
   if ((ospf = ospf_lookup_instance (instance)) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_interface_common(vty, ospf, argc, argv, 1, use_json);
+  return show_ip_ospf_interface_common(vty, ospf, argc, argv, 1, uj);
 }
 
 static void
@@ -4080,12 +4067,12 @@ DEFUN (show_ip_ospf_neighbor,
        "JavaScript Object Notation\n")
 {
   struct ospf *ospf;
-  u_char use_json = (argv[0] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if ((ospf = ospf_lookup()) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_common(vty, ospf, use_json);
+  return show_ip_ospf_neighbor_common(vty, ospf, uj);
 }
 
 
@@ -4101,13 +4088,13 @@ DEFUN (show_ip_ospf_instance_neighbor,
 {
   struct ospf *ospf;
   u_short instance = 0;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   VTY_GET_INTEGER ("Instance", instance, argv[0]);
   if ((ospf = ospf_lookup_instance(instance)) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_common(vty, ospf, use_json);
+  return show_ip_ospf_neighbor_common(vty, ospf, uj);
 }
 
 static int
@@ -4192,12 +4179,12 @@ DEFUN (show_ip_ospf_neighbor_all,
        "JavaScript Object Notation\n")
 {
   struct ospf *ospf;
-  u_char use_json = (argv[0] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if ((ospf = ospf_lookup()) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_all_common(vty, ospf, use_json);
+  return show_ip_ospf_neighbor_all_common(vty, ospf, uj);
 }
 
 DEFUN (show_ip_ospf_instance_neighbor_all,
@@ -4213,13 +4200,13 @@ DEFUN (show_ip_ospf_instance_neighbor_all,
 {
   struct ospf *ospf;
   u_short instance = 0;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   VTY_GET_INTEGER ("Instance", instance, argv[0]);
   if ((ospf = ospf_lookup_instance(instance)) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_all_common(vty, ospf, use_json);
+  return show_ip_ospf_neighbor_all_common(vty, ospf, uj);
 }
 
 static int
@@ -4286,12 +4273,12 @@ DEFUN (show_ip_ospf_neighbor_int,
        "JavaScript Object Notation\n")
 {
   struct ospf *ospf;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if ((ospf = ospf_lookup()) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_int_common(vty, ospf, 0, argv, use_json);
+  return show_ip_ospf_neighbor_int_common(vty, ospf, 0, argv, uj);
 }
 
 DEFUN (show_ip_ospf_instance_neighbor_int,
@@ -4307,13 +4294,13 @@ DEFUN (show_ip_ospf_instance_neighbor_int,
 {
   struct ospf *ospf;
   u_short instance = 0;
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
 
   VTY_GET_INTEGER ("Instance", instance, argv[0]);
   if ((ospf = ospf_lookup_instance(instance)) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_int_common(vty, ospf, 1, argv, use_json);
+  return show_ip_ospf_neighbor_int_common(vty, ospf, 1, argv, uj);
 }
 
 static void
@@ -4652,12 +4639,12 @@ DEFUN (show_ip_ospf_neighbor_id,
        "JavaScript Object Notation\n")
 {
   struct ospf *ospf;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if ((ospf = ospf_lookup()) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_id_common(vty, ospf, 0, argv, use_json);
+  return show_ip_ospf_neighbor_id_common(vty, ospf, 0, argv, uj);
 }
 
 DEFUN (show_ip_ospf_instance_neighbor_id,
@@ -4673,13 +4660,13 @@ DEFUN (show_ip_ospf_instance_neighbor_id,
 {
   struct ospf *ospf;
   u_short instance = 0;
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
 
   VTY_GET_INTEGER ("Instance", instance, argv[0]);
   if ((ospf = ospf_lookup_instance(instance)) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_id_common(vty, ospf, 1, argv, use_json);
+  return show_ip_ospf_neighbor_id_common(vty, ospf, 1, argv, uj);
 }
 
 static int
@@ -4743,12 +4730,12 @@ DEFUN (show_ip_ospf_neighbor_detail,
        "JavaScript Object Notation\n")
 {
   struct ospf *ospf;
-  u_char use_json = (argv[0] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if ((ospf = ospf_lookup()) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_detail_common(vty, ospf, use_json);
+  return show_ip_ospf_neighbor_detail_common(vty, ospf, uj);
 }
 
 DEFUN (show_ip_ospf_instance_neighbor_detail,
@@ -4764,13 +4751,13 @@ DEFUN (show_ip_ospf_instance_neighbor_detail,
 {
   struct ospf *ospf;
   u_short instance = 0;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   VTY_GET_INTEGER ("Instance", instance, argv[0]);
   if ((ospf = ospf_lookup_instance (instance)) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_detail_common(vty, ospf, use_json);
+  return show_ip_ospf_neighbor_detail_common(vty, ospf, uj);
 }
 
 static int
@@ -4841,12 +4828,12 @@ DEFUN (show_ip_ospf_neighbor_detail_all,
        "JavaScript Object Notation\n")
 {
   struct ospf *ospf;
-  u_char use_json = (argv[0] != NULL);;
+  u_char uj = use_json(argc, argv);
 
   if ((ospf = ospf_lookup()) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_detail_all_common(vty, ospf, use_json);
+  return show_ip_ospf_neighbor_detail_all_common(vty, ospf, uj);
 }
 
 DEFUN (show_ip_ospf_instance_neighbor_detail_all,
@@ -4863,13 +4850,13 @@ DEFUN (show_ip_ospf_instance_neighbor_detail_all,
 {
   struct ospf *ospf;
   u_short instance = 0;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   VTY_GET_INTEGER ("Instance", instance, argv[0]);
   if ((ospf = ospf_lookup_instance(instance)) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_detail_all_common(vty, ospf, use_json);
+  return show_ip_ospf_neighbor_detail_all_common(vty, ospf, uj);
 }
 
 static int
@@ -4943,12 +4930,12 @@ DEFUN (show_ip_ospf_neighbor_int_detail,
        "JavaScript Object Notation\n")
 {
   struct ospf *ospf;
-  u_char use_json = (argv[1] != NULL);
+  u_char uj = use_json(argc, argv);
 
   if ((ospf = ospf_lookup()) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_int_detail_common(vty, ospf, 0, argv, use_json);
+  return show_ip_ospf_neighbor_int_detail_common(vty, ospf, 0, argv, uj);
 }
 
 DEFUN (show_ip_ospf_instance_neighbor_int_detail,
@@ -4965,13 +4952,13 @@ DEFUN (show_ip_ospf_instance_neighbor_int_detail,
 {
   struct ospf *ospf;
   u_short instance = 0;
-  u_char use_json = (argv[2] != NULL);
+  u_char uj = use_json(argc, argv);
 
   VTY_GET_INTEGER ("Instance", instance, argv[0]);
   if ((ospf = ospf_lookup_instance(instance)) == NULL || !ospf->oi_running)
     return CMD_SUCCESS;
 
-  return show_ip_ospf_neighbor_int_detail_common(vty, ospf, 1, argv, use_json);
+  return show_ip_ospf_neighbor_int_detail_common(vty, ospf, 1, argv, uj);
 }
 
 /* Show functions */