summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsuz <suz@FreeBSD.org>2006-03-04 09:17:11 +0000
committersuz <suz@FreeBSD.org>2006-03-04 09:17:11 +0000
commit97cfef1237dcc2e829b75d2dac0244768e471067 (patch)
tree1c353da301d1daddf120f499df597b2dfa330486 /sys
parent5609fb149944cd356e785821c6082c0a08a6f36c (diff)
downloadFreeBSD-src-97cfef1237dcc2e829b75d2dac0244768e471067.zip
FreeBSD-src-97cfef1237dcc2e829b75d2dac0244768e471067.tar.gz
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
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet6/mld6.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/netinet6/mld6.c b/sys/netinet6/mld6.c
index 13fe867..8c0888f 100644
--- a/sys/netinet6/mld6.c
+++ b/sys/netinet6/mld6.c
@@ -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);
OpenPOWER on IntegriCloud