From: Donald Sharp Date: Sat, 23 Jul 2016 03:50:29 +0000 (-0400) Subject: pimd: Convert pim_ifchannel_local_membership_del to struct prefix *sg X-Git-Tag: frr-3.0-branchpoint~64^2~10^2~357 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=1103466bb34bbdcb5963eb009b06e77de9e4ea68;p=mirror%2Ffrr.git pimd: Convert pim_ifchannel_local_membership_del to struct prefix *sg Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index edb1a104b1..0d246a57f8 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -698,16 +698,10 @@ void pim_ifchannel_local_membership_add(struct interface *ifp, } void pim_ifchannel_local_membership_del(struct interface *ifp, - struct in_addr source_addr, - struct in_addr group_addr) + struct prefix *sg) { struct pim_ifchannel *ch; struct pim_interface *pim_ifp; - struct prefix sg; - - memset (&sg, 0, sizeof (struct prefix)); - sg.u.sg.src = source_addr; - sg.u.sg.grp = group_addr; /* PIM enabled on interface? */ pim_ifp = ifp->info; @@ -716,7 +710,7 @@ void pim_ifchannel_local_membership_del(struct interface *ifp, if (!PIM_IF_TEST_PIM(pim_ifp->options)) return; - ch = pim_ifchannel_find(ifp, &sg); + ch = pim_ifchannel_find(ifp, sg); if (!ch) return; diff --git a/pimd/pim_ifchannel.h b/pimd/pim_ifchannel.h index 3b7e2806a4..2fd429ca04 100644 --- a/pimd/pim_ifchannel.h +++ b/pimd/pim_ifchannel.h @@ -121,8 +121,7 @@ void pim_ifchannel_prune(struct interface *ifp, void pim_ifchannel_local_membership_add(struct interface *ifp, struct prefix *sg); void pim_ifchannel_local_membership_del(struct interface *ifp, - struct in_addr source_addr, - struct in_addr group_addr); + struct prefix *sg); void pim_ifchannel_ifjoin_switch(const char *caller, struct pim_ifchannel *ch, diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c index 8dce69a0da..87e2258ad7 100644 --- a/pimd/pim_zebra.c +++ b/pimd/pim_zebra.c @@ -952,6 +952,7 @@ void igmp_source_forward_start(struct igmp_source *source) struct prefix sg; int result; + memset (&sg, 0, sizeof (struct prefix)); sg.u.sg.src = source->source_addr; sg.u.sg.grp = source->source_group->group_addr; @@ -1056,16 +1057,17 @@ void igmp_source_forward_start(struct igmp_source *source) void igmp_source_forward_stop(struct igmp_source *source) { struct igmp_group *group; + struct prefix sg; int result; + memset (&sg, 0, sizeof (struct prefix)); + sg.u.sg.src = source->source_addr; + sg.u.sg.grp = source->source_group->group_addr; + if (PIM_DEBUG_IGMP_TRACE) { - char source_str[100]; - char group_str[100]; - pim_inet4_dump("", source->source_addr, source_str, sizeof(source_str)); - pim_inet4_dump("", source->source_group->group_addr, group_str, sizeof(group_str)); - zlog_debug("%s: (S,G)=(%s,%s) igmp_sock=%d oif=%s fwd=%d", + zlog_debug("%s: (S,G)=%s igmp_sock=%d oif=%s fwd=%d", __PRETTY_FUNCTION__, - source_str, group_str, + pim_str_sg_dump (&sg), source->source_group->group_igmp_sock->fd, source->source_group->group_igmp_sock->interface->name, IGMP_SOURCE_TEST_FORWARDING(source->source_flags)); @@ -1104,7 +1106,7 @@ void igmp_source_forward_stop(struct igmp_source *source) per-interface (S,G) state. */ pim_ifchannel_local_membership_del(group->group_igmp_sock->interface, - source->source_addr, group->group_addr); + &sg); IGMP_SOURCE_DONT_FORWARDING(source->source_flags); }