"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[4]->arg)
- igmp_show_interfaces_single(vty, argv[4]->arg, uj);
+ int idx = 0;
+
+ if (argv_find(argv, argc, "detail", &idx) ||
+ argv_find(argv, argc, "WORD", &idx))
+ igmp_show_interfaces_single(vty, argv[idx]->arg, uj);
else
igmp_show_interfaces(vty, uj);
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[4]->arg)
- pim_show_interfaces_single(vty, argv[4]->arg, uj);
+ int idx = 0;
+
+ if (argv_find(argv, argc, "WORD", &idx) ||
+ argv_find(argv, argc, "detail", &idx))
+ pim_show_interfaces_single(vty, argv[idx]->arg, uj);
+
else
pim_show_interfaces(vty, uj);
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[4]->arg)
- pim_show_neighbors_single(vty, argv[4]->arg, uj);
+ int idx = 0;
+
+ if (argv_find(argv, argc, "detail", &idx) ||
+ argv_find(argv, argc, "WORD", &idx))
+ pim_show_neighbors_single(vty, argv[idx]->arg, uj);
else
pim_show_neighbors(vty, uj);
DEFUN (show_ip_pim_state,
show_ip_pim_state_cmd,
- "show ip pim state [A.B.C.D] [A.B.C.D] [json]",
+ "show ip pim state [A.B.C.D [A.B.C.D]] [json]",
SHOW_STR
IP_STR
PIM_STR
const char *src_or_group = NULL;
const char *group = NULL;
u_char uj = use_json(argc, argv);
+ if (uj)
+ argc--;
- src_or_group = argv[4]->arg;
- group = argv[5]->arg;
+ if (argc == 5)
+ {
+ src_or_group = argv[4]->arg;
+ group = argv[5]->arg;
+ }
+ else if (argc == 4)
+ src_or_group = argv[4]->arg;
pim_show_state(vty, src_or_group, group, uj);
"Group Address range to cover\n")
{
int idx_ipv4 = 3;
- return pim_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_ipv4 + 1]->arg, NULL);
+
+ if (argc == (idx_ipv4 + 1))
+ return pim_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_ipv4 + 1]->arg, NULL);
+ else
+ return pim_rp_cmd_worker (vty, argv[idx_ipv4]->arg, NULL, NULL);
}
DEFUN (ip_pim_rp_prefix_list,
"Group Address range to cover\n")
{
int idx_ipv4 = 4;
- return pim_no_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_ipv4 + 1]->arg, NULL);
+
+ if (argc == (idx_ipv4 + 1))
+ return pim_no_rp_cmd_worker (vty, argv[idx_ipv4]->arg, argv[idx_ipv4 + 1]->arg, NULL);
+ else
+ return pim_no_rp_cmd_worker (vty, argv[idx_ipv4]->arg, NULL, NULL);
}
DEFUN (no_ip_pim_rp_prefix_list,
int idx_ipv4 = 2;
int result;
struct in_addr source_addr;
- const char *source_str = (argc > idx_ipv4) ? argv[idx_ipv4]->arg : "0.0.0.0";
+ const char *source_str = (argc == idx_ipv4) ? argv[idx_ipv4]->arg : "0.0.0.0";
result = inet_pton(AF_INET, source_str, &source_addr);
if (result <= 0) {
int idx_ipv4 = 3;
int result;
struct in_addr source_addr;
- const char *source_str = (argc > idx_ipv4) ? argv[idx_ipv4]->arg : "0.0.0.0";
+ const char *source_str = (argc == idx_ipv4) ? argv[idx_ipv4]->arg : "0.0.0.0";
result = inet_pton(AF_INET, source_str, &source_addr);
if (result <= 0) {
return CMD_WARNING;
}
- query_interval = atoi(argv[4]->arg);
+ query_interval = atoi(argv[3]->arg);
query_interval_dsec = 10 * query_interval;
/*
DEFUN (interface_ip_igmp_version,
interface_ip_igmp_version_cmd,
- "ip igmp version <2-3>",
+ "ip igmp version (2-3)",
IP_STR
IFACE_IGMP_STR
"IGMP version\n"
DEFUN (interface_no_ip_igmp_version,
interface_no_ip_igmp_version_cmd,
- "no ip igmp version <2-3>",
+ "no ip igmp version (2-3)",
NO_STR
IP_STR
IFACE_IGMP_STR
return CMD_WARNING;
}
- query_max_response_time = atoi(argv[4]->arg);
+ query_max_response_time = atoi(argv[3]->arg);
if (query_max_response_time >= pim_ifp->igmp_default_query_interval * 10) {
vty_out(vty,
DEFUN (interface_no_ip_igmp_query_max_response_time,
interface_no_ip_igmp_query_max_response_time_cmd,
- "no ip igmp query-max-response-time <10-250>",
+ "no ip igmp query-max-response-time (10-250)",
NO_STR
IP_STR
IFACE_IGMP_STR
pim_ifp->pim_hello_period = strtol(argv[idx_time]->arg, NULL, 10);
- if (argc > idx_hold)
+ if (argc == idx_hold)
pim_ifp->pim_default_holdtime = strtol(argv[idx_hold]->arg, NULL, 10);
return CMD_SUCCESS;
"mesh group source\n"
"mesh group local address\n")
{
- if (argv[6]->arg)
+ if (argc == 6)
return ip_no_msdp_mesh_group_cmd_worker(vty, argv[6]->arg);
else
return ip_no_msdp_mesh_group_source_cmd_worker(vty, argv[4]->arg);
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[4]->arg)
+ if (uj)
+ argc--;
+
+ if (argc == 4)
ip_msdp_show_peers_detail(vty, argv[4]->arg, uj);
else
ip_msdp_show_peers(vty, uj);
"JavaScript Object Notation\n")
{
u_char uj = use_json(argc, argv);
- if (argv[5]->arg)
+ if (uj)
+ argc--;
+
+ if (argc == 5)
ip_msdp_show_sa_sg(vty, argv[4]->arg, argv[5]->arg, uj);
- else if (argv[4]->arg)
+ else if (argc == 4)
ip_msdp_show_sa_addr(vty, argv[4]->arg, uj);
else
ip_msdp_show_sa(vty, uj);