summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDavid Schmitt <david.schmitt@puppetlabs.com>2015-05-12 15:01:55 +0100
committerDavid Schmitt <david.schmitt@puppetlabs.com>2015-05-26 14:25:43 +0100
commit0dc0e0dbcf9574ed1515cf6cfe2800f06d8c1d0e (patch)
tree6ea424514044c11258623f26cb380d38d51c8816 /lib
parent6cf64f1028cbb290a6254b5e753072f65c9336fa (diff)
downloadpuppet-stdlib-0dc0e0dbcf9574ed1515cf6cfe2800f06d8c1d0e.tar.gz
puppet-stdlib-0dc0e0dbcf9574ed1515cf6cfe2800f06d8c1d0e.tar.bz2
fqdn_rotate: reset srand seed correctly on old ruby versions
Without this, the global seed is reseeded on every use of fqdn_rotate, which is a waste. Older rubies might even use a time-base seed which adversly impacts the quality of the RNG.
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/parser/functions/fqdn_rotate.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/puppet/parser/functions/fqdn_rotate.rb b/lib/puppet/parser/functions/fqdn_rotate.rb
index cf22d36..d9741a0 100644
--- a/lib/puppet/parser/functions/fqdn_rotate.rb
+++ b/lib/puppet/parser/functions/fqdn_rotate.rb
@@ -39,9 +39,9 @@ Rotates an array a random number of times based on a nodes fqdn.
if defined?(Random) == 'constant' && Random.class == Class
offset = Random.new(seed).rand(elements)
else
- srand(seed)
+ old_seed = srand(seed)
offset = rand(elements)
- srand()
+ srand(old_seed)
end
end
offset.times {