diff options
author | ume <ume@FreeBSD.org> | 2003-08-15 17:51:51 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2003-08-15 17:51:51 +0000 |
commit | 2de9e4015b59f75aaa910be7b3cb2cddd264e3bf (patch) | |
tree | aa22773b0a9dd4c4a79ad5eaabdde1ed27aa6f37 /usr.sbin/rtadvd | |
parent | 8a6097d8ded3778d27601a2f7908e2811d60baea (diff) | |
download | FreeBSD-src-2de9e4015b59f75aaa910be7b3cb2cddd264e3bf.zip FreeBSD-src-2de9e4015b59f75aaa910be7b3cb2cddd264e3bf.tar.gz |
use arc4random.
Obtained from: KAME
MFC after: 1 week
Diffstat (limited to 'usr.sbin/rtadvd')
-rw-r--r-- | usr.sbin/rtadvd/Makefile | 2 | ||||
-rw-r--r-- | usr.sbin/rtadvd/rtadvd.c | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/usr.sbin/rtadvd/Makefile b/usr.sbin/rtadvd/Makefile index 179ba4e..561883e 100644 --- a/usr.sbin/rtadvd/Makefile +++ b/usr.sbin/rtadvd/Makefile @@ -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 diff --git a/usr.sbin/rtadvd/rtadvd.c b/usr.sbin/rtadvd/rtadvd.c index e0811ca..f33a951 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 |