diff options
| author | Roy Marples <roy@marples.name> | 2007-05-11 10:33:49 +0000 | 
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2007-05-11 10:33:49 +0000 | 
| commit | 81ccc674462dea1609664f0b887c5729dac9ba6d (patch) | |
| tree | d236be845de7ba2f28c0b5ee6b1176e35a5a90e6 | |
| parent | 56148d60ddc1838afe9dafd90f18dd7aca758420 (diff) | |
| download | openrc-81ccc674462dea1609664f0b887c5729dac9ba6d.tar.xz | |
Store the defined random pool size, #177722 thanks to Yaroslav Isakov.
| -rw-r--r-- | ChangeLog | 1 | ||||
| -rwxr-xr-x | init.d/hostname | 2 | ||||
| -rwxr-xr-x | init.d/local | 3 | ||||
| -rwxr-xr-x | init.d/rmnologin | 3 | ||||
| -rwxr-xr-x | init.d/urandom | 19 | 
5 files changed, 18 insertions, 10 deletions
| @@ -3,6 +3,7 @@    11 May 2007; Roy Marples <uberlord@gentoo.org>: +    Store the defined random pool size, #177722 thanks to Yaroslav Isakov.      Use auto for /mnt/cdrom, #177990.  	Use clock MONOTONIC to timeout, not localtime, #177514. diff --git a/init.d/hostname b/init.d/hostname index 86eb989a..4e804520 100755 --- a/init.d/hostname +++ b/init.d/hostname @@ -17,4 +17,4 @@ start() {  	eend $? "Failed to set the hostname"  } -# vim: ts=4 : +# vim: set ts=4 : diff --git a/init.d/local b/init.d/local index 4e4c265c..77d02668 100755 --- a/init.d/local +++ b/init.d/local @@ -30,5 +30,4 @@ stop() {  	eend $? $"Failed to stop local"  } - -# vim:ts=4 +# vim: set ts=4 : diff --git a/init.d/rmnologin b/init.d/rmnologin index 56b20ea1..0c1691f7 100755 --- a/init.d/rmnologin +++ b/init.d/rmnologin @@ -12,5 +12,4 @@ start() {  	fi  } - -# vim:ts=4 +# vim: set ts=4 : diff --git a/init.d/urandom b/init.d/urandom index a09153a5..b901d6d8 100755 --- a/init.d/urandom +++ b/init.d/urandom @@ -6,6 +6,17 @@ depend() {  	need localmount  } +save_seed() { +	local poolsize=1 + +	if [ -e /proc/sys/kernel/random/poolsize ] ; then +		poolsize=$(($(cat /proc/sys/kernel/random/poolsize) / 4096)) +	fi + +	umask 077 +	dd if=/dev/urandom of=/var/run/random-seed count=${poolsize} 2>/dev/null +} +  start() {  	[ -c /dev/urandom ] || return  	if [ -f /var/run/random-seed ] ; then @@ -16,8 +27,7 @@ start() {  		return 0  	fi  	ebegin "Initializing random number generator" -	umask 077 -	dd if=/dev/urandom of=/var/run/random-seed count=1 2>/dev/null +	save_seed  	eend $? "Error initializing random number generator"  	umask 022  } @@ -26,9 +36,8 @@ stop() {  	ebegin "Saving random seed"  	# Carry a random seed from shut-down to start-up;  	# see documentation in linux/drivers/char/random.c -	umask 077 -	dd if=/dev/urandom of=/var/run/random-seed count=1 2>/dev/null +	save_seed  	eend $? "Failed to save random seed"  } -# vim:ts=4 +# vim: set ts=4 : | 
