1#!/bin/sh
2#
3# $FreeBSD$
4#
5
6# PROVIDE: initrandom
7# REQUIRE: dumpon ddb
8# BEFORE: disks
9# KEYWORD: nojail
10
11. /etc/rc.subr
12
13name="initrandom"
14start_cmd="initrandom_start"
15stop_cmd=":"
16
17initrandom_start()
18{
19	soft_random_generator=`sysctl kern.random 2>/dev/null`
20
21	echo -n 'Entropy harvesting:'
22
23	if [ \! -z "${soft_random_generator}" ] ; then
24
25		if [ -w /dev/random ]; then
26			if checkyesno harvest_interrupt; then
27				${SYSCTL} kern.random.sys.harvest.interrupt=1 >/dev/null
28				echo -n ' interrupts'
29			else
30				${SYSCTL} kern.random.sys.harvest.interrupt=0 >/dev/null
31			fi
32
33			if checkyesno harvest_ethernet; then
34				${SYSCTL} kern.random.sys.harvest.ethernet=1 >/dev/null
35				echo -n ' ethernet'
36			else
37				${SYSCTL} kern.random.sys.harvest.ethernet=0 >/dev/null
38			fi
39
40			if checkyesno harvest_p_to_p; then
41				${SYSCTL} kern.random.sys.harvest.point_to_point=1 >/dev/null
42				echo -n ' point_to_point'
43			else
44				${SYSCTL} kern.random.sys.harvest.point_to_point=0 >/dev/null
45			fi
46
47			if checkyesno harvest_swi; then
48				${SYSCTL} kern.random.sys.harvest.swi=1 >/dev/null
49				echo -n ' swi'
50			else
51				${SYSCTL} kern.random.sys.harvest.swi=0 >/dev/null
52			fi
53		fi
54
55	fi
56
57	echo '.'
58}
59
60load_rc_config random
61run_rc_command "$1"
62