encswap revision 125388
1#!/bin/sh
2#
3# $FreeBSD: head/etc/rc.d/encswap 125388 2004-02-03 11:26:08Z des $
4#
5
6# PROVIDE: disks
7# REQUIRE: random
8# KEYWORD: FreeBSD
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	cat /etc/fstab |
19	while read device mountpoint type options rest ; do
20		case "${device}:${type}:${options}" in
21		*.bde:swap:sw)
22			;;
23		*)
24			continue
25			;;
26		esac
27		passphrase=`dd if=/dev/random count=1 2>/dev/null | md5 -q`
28		device="${device%.bde}"
29		lockfile="/var/run/${device##*/}.lock"
30		gbde init "${device}" -L "${lockfile}" -P "${passphrase}" ||
31			return 1
32		gbde attach "${device}" -l "${lockfile}" -p "${passphrase}" ||
33			return 1
34	done
35}
36
37gbde_swap_detach()
38{
39	cat /etc/fstab |
40	while read device mountpoint type options rest ; do
41		case "${device}:${type}:${options}" in
42		*.bde:swap:sw)
43			;;
44		*)
45			continue
46			;;
47		esac
48		device="${device%.bde}"
49		gbde detach "${device}"
50	done
51}
52
53load_rc_config $name
54run_rc_command "$1"
55