{
struct interface *ifp;
struct igmp_stats igmp_stats;
+ bool found_ifname = false;
+ json_object *json = NULL;
igmp_stats_init(&igmp_stats);
+ if (uj)
+ json = json_object_new_object();
+
FOR_ALL_INTERFACES (pim->vrf, ifp) {
struct pim_interface *pim_ifp;
struct listnode *sock_node, *source_node, *group_node;
if (ifname && strcmp(ifname, ifp->name))
continue;
+ found_ifname = true;
+
igmp_stats.joins_failed += pim_ifp->igmp_ifstat_joins_failed;
igmp_stats.joins_sent += pim_ifp->igmp_ifstat_joins_sent;
igmp_stats.total_groups +=
igmp_stats_add(&igmp_stats, &igmp->igmp_stats);
}
}
- if (uj) {
- json_object *json = NULL;
- json_object *json_row = NULL;
- json = json_object_new_object();
- json_row = json_object_new_object();
+ if (!found_ifname) {
+ if (uj)
+ vty_json(vty, json);
+ else
+ vty_out(vty, "%% No such interface\n");
+ return;
+ }
+
+ if (uj) {
+ json_object *json_row = json_object_new_object();
- json_object_string_add(json_row, "name", ifname ? ifname :
- "global");
+ json_object_string_add(json_row, "name",
+ ifname ? ifname : "global");
json_object_int_add(json_row, "queryV1", igmp_stats.query_v1);
json_object_int_add(json_row, "queryV2", igmp_stats.query_v2);
json_object_int_add(json_row, "queryV3", igmp_stats.query_v3);