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

Function inm_reap

freebsd/netinet/in_mcast.c:1174–1189  ·  view source on GitHub ↗

* Reap unreferenced nodes from an in_multi's filter set. */

Source from the content-addressed store, hash-verified

1172 * Reap unreferenced nodes from an in_multi's filter set.
1173 */
1174static void
1175inm_reap(struct in_multi *inm)
1176{
1177 struct ip_msource *ims, *tims;
1178
1179 RB_FOREACH_SAFE(ims, ip_msource_tree, &inm->inm_srcs, tims) {
1180 if (ims->ims_st[0].ex > 0 || ims->ims_st[0].in > 0 ||
1181 ims->ims_st[1].ex > 0 || ims->ims_st[1].in > 0 ||
1182 ims->ims_stp != 0)
1183 continue;
1184 CTR2(KTR_IGMPV3, "%s: free ims %p", __func__, ims);
1185 RB_REMOVE(ip_msource_tree, &inm->inm_srcs, ims);
1186 free(ims, M_IPMSOURCE);
1187 inm->inm_nsrc--;
1188 }
1189}
1190
1191/*
1192 * Purge all source nodes from an in_multi's filter set.

Callers 1

inm_mergeFunction · 0.85

Calls 1

freeFunction · 0.50

Tested by

no test coverage detected