]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zebra_ptm_redistribute.c
zebra: reorganize zserv, batch i/o
[mirror_frr.git] / zebra / zebra_ptm_redistribute.c
index 8fddd400cc04ef89826d42e82692ed79f1158cd8..fe788ac4d7b8a03dce9af4868220dec1d56e422e 100644 (file)
@@ -38,8 +38,7 @@ static int zsend_interface_bfd_update(int cmd, struct zserv *client,
        if (!client->ifinfo)
                return 0;
 
-       s = client->obuf;
-       stream_reset(s);
+       s = stream_new(ZEBRA_MAX_PACKET_SIZ);
 
        zclient_create_header(s, cmd, vrf_id);
        if (ifp)
@@ -66,7 +65,7 @@ static int zsend_interface_bfd_update(int cmd, struct zserv *client,
        stream_putw_at(s, 0, stream_get_endp(s));
 
        client->if_bfd_cnt++;
-       return zebra_server_send_message(client);
+       return zebra_server_send_message(client, s);
 }
 
 void zebra_interface_bfd_update(struct interface *ifp, struct prefix *dp,
@@ -93,8 +92,7 @@ static int zsend_bfd_peer_replay(int cmd, struct zserv *client)
 {
        struct stream *s;
 
-       s = client->obuf;
-       stream_reset(s);
+       s = stream_new(ZEBRA_MAX_PACKET_SIZ);
 
        zclient_create_header(s, cmd, VRF_DEFAULT);
 
@@ -102,7 +100,7 @@ static int zsend_bfd_peer_replay(int cmd, struct zserv *client)
        stream_putw_at(s, 0, stream_get_endp(s));
 
        client->bfd_peer_replay_cnt++;
-       return zebra_server_send_message(client);
+       return zebra_server_send_message(client, s);
 }
 
 void zebra_bfd_peer_replay_req(void)