- Describe new 802.11 options
[dragonfly.git] / etc / rc.d / initrandom
1 #!/bin/sh
2 #
3 # $FreeBSD: src/etc/rc.d/initrandom,v 1.1 2002/06/13 22:14:36 gordon Exp $
4 # $DragonFly: src/etc/rc.d/initrandom,v 1.5 2005/11/19 21:47:32 swildner Exp $
5 #
6
7 # PROVIDE: initrandom
8 # REQUIRE: initdiskless
9 # BEFORE: disks
10
11 . /etc/rc.subr
12
13 name="initrandom"
14 start_cmd="initrandom_start"
15 stop_cmd=":"
16
17 feed_dev_random()
18 {
19         if [ -f "${1}" -a -r "${1}" -a -s "${1}" ]; then
20                 cat "${1}" | dd of=/dev/random bs=8k 2>/dev/null
21         fi
22 }
23
24 initrandom_start()
25 {
26         echo '.'
27
28         # First pass at reseeding /dev/random.
29         #
30         case ${entropy_file} in
31         [Nn][Oo] | '')
32                 ;;
33         *)
34                 if [ -w /dev/random ]; then
35                         feed_dev_random "${entropy_file}"
36                 fi
37                 ;;
38         esac
39
40         # XXX temporary until we can get the entropy
41         # harvesting rate up
42         # Entropy below is not great,
43         # but better than nothing.
44         ( ps -fauxww; sysctl -a; date; df -ib; dmesg; ps -fauxww; ) \
45             2>&1 | dd of=/dev/random bs=8k 2>/dev/null
46         cat /bin/ls | dd of=/dev/random bs=8k 2>/dev/null
47 }
48
49 load_rc_config random
50 run_rc_command "$1"