FreeBSD/sys/netinet/in_mcast.c
void
inm_clear_recorded(struct in_multi *inm)
{
	struct ip_msource	*ims;

	IN_MULTI_LOCK_ASSERT();

	RB_FOREACH(ims, ip_msource_tree, &inm->inm_srcs) {
		if (ims->ims_stp) {
			ims->ims_stp = 0;
			--inm->inm_st[1].iss_rec;
		}
	}
	KASSERT(inm->inm_st[1].iss_rec == 0,
	    ("%s: iss_rec %d not 0", __func__, inm->inm_st[1].iss_rec));
}
/*
 * Clear recorded source entries for a group.
 * Used by the IGMP code. Caller must hold the IN_MULTI lock.
 * FIXME: Should reap.
 */
Clear recorded source entries for a group.
Used by the IGMP code. Caller must hold the IN_MULTI lock.
FIXME: Should reap.
Clear recorded source entries for a group . Used by the IGMP code . Caller must hold the IN_MULTI lock . FIXME : Should reap .
void
inm_clear_recorded(struct in_multi *inm)
{
	struct ip_msource	*ims;
	IN_MULTI_LOCK_ASSERT();
	RB_FOREACH(ims, ip_msource_tree, &inm->inm_srcs) {
		if (ims->ims_stp) {
			ims->ims_stp = 0;
			--inm->inm_st[1].iss_rec;
		}
	}
	KASSERT(inm->inm_st[1].iss_rec == 0,
	    ("%s: iss_rec %d not 0", __func__, inm->inm_st[1].iss_rec));
}
void inm_clear_recorded ( struct in_multi * inm ) { struct ip_msource * ims ; IN_MULTI_LOCK_ASSERT ( ) ; RB_FOREACH ( ims , ip_msource_tree , & inm -> inm_srcs ) { if ( ims -> ims_stp ) { ims -> ims_stp = 0 ; -- inm -> inm_st [ 1 ] . iss_rec ; } } KASSERT ( inm -> inm_st [ 1 ] . iss_rec == 0 , ( " " , __func__ , inm -> inm_st [ 1 ] . iss_rec ) ) ; }
Clear recorded source entries for a group.
Clear recorded source entries for a group .