]> git.puffer.fish Git - matthieu/frr.git/commitdiff
ospf6d: use a new json_object per loop iteration
authorDonald Sharp <sharpd@nvidia.com>
Sun, 24 Jan 2021 12:48:22 +0000 (07:48 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 25 Jan 2021 14:15:36 +0000 (09:15 -0500)
When redistributing multiple route types into ospfv3
the code must create a new array per route type into
the the json code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
ospf6d/ospf6_asbr.c

index af99bc0c884c2e4b6afd19efcce455bf5540e501..fdfd53276e53f0c6c7fe7aba814f33d45665bb78 100644 (file)
@@ -1439,8 +1439,7 @@ static void ospf6_redistribute_show_config(struct vty *vty, struct ospf6 *ospf6,
        struct ospf6_redist *red;
 
        total = 0;
-       for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
-               nroute[type] = 0;
+       memset(nroute, 0, sizeof(nroute));
        for (route = ospf6_route_head(ospf6->external_table); route;
             route = ospf6_route_next(route)) {
                info = route->route_option;
@@ -1448,12 +1447,11 @@ static void ospf6_redistribute_show_config(struct vty *vty, struct ospf6 *ospf6,
                total++;
        }
 
-       if (use_json)
-               json_route = json_object_new_object();
-       else
+       if (!use_json)
                vty_out(vty, "Redistributing External Routes from:\n");
 
        for (type = 0; type < ZEBRA_ROUTE_MAX; type++) {
+
                red = ospf6_redist_lookup(ospf6, type, 0);
 
                if (!red)
@@ -1462,6 +1460,7 @@ static void ospf6_redistribute_show_config(struct vty *vty, struct ospf6 *ospf6,
                        continue;
 
                if (use_json) {
+                       json_route = json_object_new_object();
                        json_object_string_add(json_route, "routeType",
                                               ZROUTE_NAME(type));
                        json_object_int_add(json_route, "numberOfRoutes",