use arc4random.

Obtained from:	KAME
MFC after:	1 week
This commit is contained in:
Hajimu UMEMOTO 2003-08-15 17:51:51 +00:00
parent 51964a1b2b
commit dba14c305c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=118962
2 changed files with 7 additions and 1 deletions

View File

@ -18,7 +18,7 @@ PROG= rtadvd
MAN= rtadvd.conf.5 rtadvd.8
SRCS= rtadvd.c rrenum.c advcap.c if.c config.c timer.c dump.c
CFLAGS+= -DINET6 -DHAVE_POLL_H
CFLAGS+= -DINET6 -DHAVE_ARC4RANDOM -DHAVE_POLL_H
DPADD= ${LIBCOMPAT}
LDADD= -lcompat

View File

@ -214,11 +214,13 @@ main(argc, argv)
/* timer initialization */
rtadvd_timer_init();
#ifndef HAVE_ARC4RANDOM
/* random value initialization */
#ifdef __FreeBSD__
srandomdev();
#else
srandom((u_long)time(NULL));
#endif
#endif
/* get iflist block from kernel */
@ -1634,7 +1636,11 @@ ra_timer_update(void *data, struct timeval *tm)
* MaxRtrAdvInterval (RFC2461 6.2.4).
*/
interval = rai->mininterval;
#ifdef HAVE_ARC4RANDOM
interval += arc4random() % (rai->maxinterval - rai->mininterval);
#else
interval += random() % (rai->maxinterval - rai->mininterval);
#endif
/*
* For the first few advertisements (up to