svn commit: r273957 - in head: . etc/rc.d
Dag-Erling Smørgrav
des at FreeBSD.org
Sun Nov 2 01:47:29 UTC 2014
Author: des
Date: Sun Nov 2 01:47:27 2014
New Revision: 273957
URL: https://svnweb.freebsd.org/changeset/base/273957
Log:
Get rid of the postrandom script. It was born in a time when the
random script ran before filesystems were mounted, which is no
longer the case.
In random_start(), immediately delete each file that is fed into
/dev/random, and recreate the default entropy file immediately
after reading and deleting it. The logic used in random_stop()
to determine which file to write to should probably be factored
out and used here as well.
Deleted:
head/etc/rc.d/postrandom
Modified:
head/ObsoleteFiles.inc
head/etc/rc.d/Makefile
head/etc/rc.d/adjkerntz
head/etc/rc.d/random
Modified: head/ObsoleteFiles.inc
==============================================================================
--- head/ObsoleteFiles.inc Sun Nov 2 01:13:11 2014 (r273956)
+++ head/ObsoleteFiles.inc Sun Nov 2 01:47:27 2014 (r273957)
@@ -38,6 +38,8 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20141102: postrandom obsoleted by new /dev/random code
+OLD_FILES+=etc/rc.d/postrandom
# 20141031: initrandom obsoleted by new /dev/random code
OLD_FILES+=etc/rc.d/initrandom
# 20141028: debug files accidentally installed as directory name
Modified: head/etc/rc.d/Makefile
==============================================================================
--- head/etc/rc.d/Makefile Sun Nov 2 01:13:11 2014 (r273956)
+++ head/etc/rc.d/Makefile Sun Nov 2 01:47:27 2014 (r273957)
@@ -112,7 +112,6 @@ FILES= DAEMON \
pf \
pflog \
pfsync \
- postrandom \
powerd \
power_profile \
ppp \
Modified: head/etc/rc.d/adjkerntz
==============================================================================
--- head/etc/rc.d/adjkerntz Sun Nov 2 01:13:11 2014 (r273956)
+++ head/etc/rc.d/adjkerntz Sun Nov 2 01:47:27 2014 (r273957)
@@ -4,7 +4,7 @@
#
# PROVIDE: adjkerntz
-# REQUIRE: FILESYSTEMS postrandom
+# REQUIRE: FILESYSTEMS
# BEFORE: netif
# KEYWORD: nojail
Modified: head/etc/rc.d/random
==============================================================================
--- head/etc/rc.d/random Sun Nov 2 01:13:11 2014 (r273956)
+++ head/etc/rc.d/random Sun Nov 2 01:47:27 2014 (r273957)
@@ -17,41 +17,58 @@ stop_cmd="random_stop"
extra_commands="saveseed"
saveseed_cmd="${name}_stop"
+save_dev_random()
+{
+ for f ; do
+ if :>>"$f" ; then
+ debug "saving entropy to $f"
+ dd if=/dev/random of="$f" bs=4096 count=1 2>/dev/null
+ fi
+ done
+}
+
feed_dev_random()
{
- if [ -f "${1}" -a -r "${1}" -a -s "${1}" ]; then
- cat "${1}" | dd of=/dev/random bs=8k 2>/dev/null
- fi
+ for f ; do
+ if [ -f "$f" -a -r "$f" -a -s "$f" ] ; then
+ if dd if="$f" of=/dev/random bs=4096 2>/dev/null ; then
+ debug "entropy read from $f"
+ rm -f "$f"
+ fi
+ fi
+ done
}
random_start()
{
+ echo -n 'Feeding entropy:'
+
+ if [ ! -w /dev/random ] ; then
+ warn "/dev/random is not writeable"
+ return 1
+ fi
+
# Reseed /dev/random with previously stored entropy.
- case ${entropy_dir} in
+ case ${entropy_dir:=/var/db/entropy} in
[Nn][Oo])
;;
*)
- entropy_dir=${entropy_dir:-/var/db/entropy}
- if [ -d "${entropy_dir}" ]; then
- if [ -w /dev/random ]; then
- for seedfile in ${entropy_dir}/*; do
- feed_dev_random "${seedfile}"
- done
- fi
+ if [ -d "${entropy_dir}" ] ; then
+ feed_dev_random "${entropy_dir}"/*
fi
;;
esac
- case ${entropy_file} in
+ case ${entropy_file:=/entropy} in
[Nn][Oo] | '')
;;
*)
- if [ -w /dev/random ]; then
- feed_dev_random "${entropy_file}"
- feed_dev_random /var/db/entropy-file
- fi
+ feed_dev_random "${entropy_file}" /var/db/entropy-file
+ save_dev_random "${entropy_file}"
;;
esac
+
+ echo '.'
}
random_stop()
@@ -59,7 +76,7 @@ random_stop()
# Write some entropy so when the machine reboots /dev/random
# can be reseeded
#
- case ${entropy_file} in
+ case ${entropy_file:=/entropy} in
[Nn][Oo] | '')
;;
*)
More information about the svn-src-head
mailing list