We were figuring out the group size 2 times. Figure it out
1 time and then pass it around.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
curr_ptr += group_size;
packet_left -= group_size;
packet_size += group_size;
- pim_msg_build_jp_groups (grp, group);
+ pim_msg_build_jp_groups (grp, group, group_size);
grp = (struct pim_jp_groups *)curr_ptr;
if (packet_left < sizeof (struct pim_jp_groups) || msg->num_groups == 255)
}
size_t
-pim_msg_build_jp_groups (struct pim_jp_groups *grp, struct pim_jp_agg_group *sgs)
+pim_msg_build_jp_groups (struct pim_jp_groups *grp, struct pim_jp_agg_group *sgs, size_t size)
{
struct listnode *node, *nnode;
struct pim_jp_sources *source;
struct in_addr stosend;
uint8_t bits;
- size_t size = pim_msg_get_jp_group_size (sgs->sources);
uint8_t tgroups = 0;
memset (grp, 0, size);
size_t pim_msg_get_jp_group_size (struct list *sources);
-size_t pim_msg_build_jp_groups (struct pim_jp_groups *grp, struct pim_jp_agg_group *sgs);
+size_t pim_msg_build_jp_groups (struct pim_jp_groups *grp, struct pim_jp_agg_group *sgs, size_t size);
#endif /* PIM_MSG_H */