]> git.proxmox.com Git - mirror_frr.git/blobdiff - ripngd/ripng_zebra.c
Merge branch 'master' into docs-user
[mirror_frr.git] / ripngd / ripng_zebra.c
index 283d8691a3db243ffc4596a4c243b545d03df8c6..ea069d877fe251d38cfea13d3f297426fece2e61 100644 (file)
@@ -48,12 +48,15 @@ static void ripng_zebra_ipv6_send(struct route_node *rp, u_char cmd)
 
        memset(&api, 0, sizeof(api));
        api.vrf_id = VRF_DEFAULT;
+       api.nh_vrf_id = VRF_DEFAULT;
        api.type = ZEBRA_ROUTE_RIPNG;
        api.safi = SAFI_UNICAST;
        api.prefix = rp->p;
 
        SET_FLAG(api.message, ZAPI_MESSAGE_NEXTHOP);
        for (ALL_LIST_ELEMENTS_RO(list, listnode, rinfo)) {
+               if (count >= MULTIPATH_NUM)
+                       break;
                api_nh = &api.nexthops[count];
                api_nh->gate.ipv6 = rinfo->nexthop;
                api_nh->ifindex = rinfo->ifindex;
@@ -411,8 +414,8 @@ static void ripng_zebra_connected(struct zclient *zclient)
 void zebra_init(struct thread_master *master)
 {
        /* Allocate zebra structure. */
-       zclient = zclient_new(master);
-       zclient_init(zclient, ZEBRA_ROUTE_RIPNG, 0);
+       zclient = zclient_new_notify(master, &zclient_options_default);
+       zclient_init(zclient, ZEBRA_ROUTE_RIPNG, 0, &ripngd_privs);
 
        zclient->zebra_connected = ripng_zebra_connected;
        zclient->interface_up = ripng_interface_up;