fixed a bug that an MLD report is not advertised when group-specific MLD query is received.

PR:	kern/93526
Obtained from:	KAME
MFC after:	1 day
This commit is contained in:
SUZUKI Shinsuke 2006-03-04 09:17:11 +00:00
parent ed40c5a34d
commit 2c112cdc6d

View File

@ -327,7 +327,8 @@ mld6_input(m, off)
*
* In Non-Listener state, we simply don't have a membership record.
* In Delaying Listener state, our timer is running (in6m->in6m_timer)
* In Idle Listener state, our timer is not running (in6m->in6m_timer==0)
* In Idle Listener state, our timer is not running
* (in6m->in6m_timer==IN6M_TIMER_UNDEF)
*
* The flag is in6m->in6m_state, it is set to MLD_OTHERLISTENER if
* we have heard a report from another member, or MLD_IREPORTEDLAST
@ -395,7 +396,7 @@ mld6_input(m, off)
in6m->in6m_timer = 0; /* reset timer */
in6m->in6m_state = MLD_IREPORTEDLAST;
}
else if (in6m->in6m_timer == 0 || /*idle state*/
else if (in6m->in6m_timer == IN6M_TIMER_UNDEF ||
mld_timerresid(in6m) > (u_long)timer) {
in6m->in6m_timer = arc4random() %
(int)((long)(timer * hz) / 1000);