aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/rtadvd/rtadvd.c
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2003-08-15 17:51:51 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2003-08-15 17:51:51 +0000
commitdba14c305c2a73a2485473738456cac5575093a7 (patch)
treeaa22773b0a9dd4c4a79ad5eaabdde1ed27aa6f37 /usr.sbin/rtadvd/rtadvd.c
parent51964a1b2b0aca4d25daa70840b002045627a556 (diff)
downloadsrc-dba14c305c2a73a2485473738456cac5575093a7.tar.gz
src-dba14c305c2a73a2485473738456cac5575093a7.zip
use arc4random.
Obtained from: KAME MFC after: 1 week
Notes
Notes: svn path=/head/; revision=118962
Diffstat (limited to 'usr.sbin/rtadvd/rtadvd.c')
-rw-r--r--usr.sbin/rtadvd/rtadvd.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/usr.sbin/rtadvd/rtadvd.c b/usr.sbin/rtadvd/rtadvd.c
index e0811cab3c43..f33a9518dcef 100644
--- a/usr.sbin/rtadvd/rtadvd.c
+++ b/usr.sbin/rtadvd/rtadvd.c
@@ -214,12 +214,14 @@ 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 */
init_iflist();
@@ -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