MCPcopy Create free account
hub / github.com/F-Stack/f-stack / inp_gcmoptions

Function inp_gcmoptions

freebsd/netinet6/in6_mcast.c:1591–1614  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1589 */
1590
1591static void
1592inp_gcmoptions(struct ip6_moptions *imo)
1593{
1594 struct in6_mfilter *imf;
1595 struct in6_multi *inm;
1596 struct ifnet *ifp;
1597
1598 while ((imf = ip6_mfilter_first(&imo->im6o_head)) != NULL) {
1599 ip6_mfilter_remove(&imo->im6o_head, imf);
1600
1601 im6f_leave(imf);
1602 if ((inm = imf->im6f_in6m) != NULL) {
1603 if ((ifp = inm->in6m_ifp) != NULL) {
1604 CURVNET_SET(ifp->if_vnet);
1605 (void)in6_leavegroup(inm, imf);
1606 CURVNET_RESTORE();
1607 } else {
1608 (void)in6_leavegroup(inm, imf);
1609 }
1610 }
1611 ip6_mfilter_free(imf);
1612 }
1613 free(imo, M_IP6MOPTS);
1614}
1615
1616void
1617ip6_freemoptions(struct ip6_moptions *imo)

Callers 1

ip6_freemoptionsFunction · 0.70

Calls 6

im6f_leaveFunction · 0.85
in6_leavegroupFunction · 0.85
ip6_mfilter_freeFunction · 0.85
ip6_mfilter_firstFunction · 0.70
ip6_mfilter_removeFunction · 0.70
freeFunction · 0.50

Tested by

no test coverage detected