summaryrefslogtreecommitdiffstats
path: root/usr.sbin/nsd/rrl.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/nsd/rrl.c')
-rw-r--r--usr.sbin/nsd/rrl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr.sbin/nsd/rrl.c b/usr.sbin/nsd/rrl.c
index 8358ea57d70..2a7ca4f05b7 100644
--- a/usr.sbin/nsd/rrl.c
+++ b/usr.sbin/nsd/rrl.c
@@ -449,7 +449,9 @@ int rrl_process_query(query_type* query)
query_state_type rrl_slip(query_type* query)
{
/* discard number the packets, randomly */
-#ifdef HAVE_ARC4RANDOM
+#ifdef HAVE_ARC4RANDOM_UNIFORM
+ if((rrl_slip_ratio > 0) && ((rrl_slip_ratio == 1) || ((arc4random_uniform(rrl_slip_ratio)) == 0))) {
+#elif HAVE_ARC4RANDOM
if((rrl_slip_ratio > 0) && ((rrl_slip_ratio == 1) || ((arc4random() % rrl_slip_ratio) == 0))) {
#else
if((rrl_slip_ratio > 0) && ((rrl_slip_ratio == 1) || ((random() % rrl_slip_ratio) == 0))) {