encswap revision 133987
1#!/bin/sh
2#
3# $FreeBSD: head/etc/rc.d/encswap 133987 2004-08-18 21:54:40Z thomas $
4#
5
6# PROVIDE: disks
7# REQUIRE: initrandom
8# KEYWORD: FreeBSD nojail
9
10. /etc/rc.subr
11
12name="gbde_swap"
13start_cmd="gbde_swap_attach"
14stop_cmd="gbde_swap_detach"
15
16gbde_swap_attach()
17{
18	while read device mountpoint type options rest ; do
19		case ":${device}:${type}:${options}" in
20		:#*)
21			continue
22			;;
23		*.bde:swap:sw)
24			;;
25		*)
26			continue
27			;;
28		esac
29		passphrase=`dd if=/dev/random count=1 2>/dev/null | md5 -q`
30		device="${device%.bde}"
31		gbde init "${device}" -P "${passphrase}" || return 1
32		gbde attach "${device}" -p "${passphrase}" || return 1
33	done < /etc/fstab
34}
35
36gbde_swap_detach()
37{
38	while read device mountpoint type options rest ; do
39		case ":${device}:${type}:${options}" in
40		:#*)
41			continue
42			;;
43		*.bde:swap:sw)
44			;;
45		*)
46			continue
47			;;
48		esac
49		device="${device%.bde}"
50		gbde detach "${device}"
51	done < /etc/fstab
52}
53
54load_rc_config $name
55run_rc_command "$1"
56