version 1.54, 2011/10/19 01:53:07 |
version 1.55, 2011/11/19 22:51:29 |
Line 116 __KERNEL_RCSID(0, "$NetBSD$"); |
|
Line 116 __KERNEL_RCSID(0, "$NetBSD$"); |
|
#include <sys/sysctl.h> |
#include <sys/sysctl.h> |
#include <sys/kernel.h> |
#include <sys/kernel.h> |
#include <sys/callout.h> |
#include <sys/callout.h> |
|
#include <sys/cprng.h> |
|
|
#include <net/if.h> |
#include <net/if.h> |
|
|
Line 289 mld_start_listening(struct in6_multi *in |
|
Line 290 mld_start_listening(struct in6_multi *in |
|
in6m->in6m_state = MLD_OTHERLISTENER; |
in6m->in6m_state = MLD_OTHERLISTENER; |
} else { |
} else { |
mld_sendpkt(in6m, MLD_LISTENER_REPORT, NULL); |
mld_sendpkt(in6m, MLD_LISTENER_REPORT, NULL); |
in6m->in6m_timer = arc4random() % |
in6m->in6m_timer = cprng_fast32() % |
(MLD_UNSOLICITED_REPORT_INTERVAL * hz); |
(MLD_UNSOLICITED_REPORT_INTERVAL * hz); |
in6m->in6m_state = MLD_IREPORTEDLAST; |
in6m->in6m_state = MLD_IREPORTEDLAST; |
|
|
Line 443 mld_input(struct mbuf *m, int off) |
|
Line 444 mld_input(struct mbuf *m, int off) |
|
} else if (in6m->in6m_timer == IN6M_TIMER_UNDEF || |
} else if (in6m->in6m_timer == IN6M_TIMER_UNDEF || |
mld_timerresid(in6m) > timer) { |
mld_timerresid(in6m) > timer) { |
in6m->in6m_timer = |
in6m->in6m_timer = |
1 + (arc4random() % timer) * hz / 1000; |
1 + (cprng_fast32() % timer) * hz / 1000; |
mld_starttimer(in6m); |
mld_starttimer(in6m); |
} |
} |
} |
} |