blob: 5f661fd398c8446676ecba78a0056d02e256c909 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#!/bin/sh
# PROVIDE: spiped
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# spiped_enable: Set to YES to enable spiped.
# spiped_uid: User for spiped process (default "spiped").
# spiped_gid: Group for spiped process (default "spiped").
# spiped_pipes: List of names of pipes to create.
# spiped_pipe_X_mode: "encrypt"/"client" or "decrypt"/"server".
# spiped_pipe_X_source: Source address of pipe X.
# spiped_pipe_X_target: Target address of pipe X.
# spiped_pipe_X_key: Key file for pipe X.
# spiped_pipe_X_flags: Optional flags for pipe X. See spiped(1) for details.
. /etc/rc.subr
name="spiped"
rcvar=spiped_enable
load_rc_config $name
: ${spiped_enable="NO"}
: ${spiped_uid="spiped"}
: ${spiped_gid="spiped"}
command=%%PREFIX%%/bin/${name}
start_cmd="${name}_start"
stop_cmd="${name}_stop"
spiped_start()
{
local P PIDFILE MODE SOURCE TARGET KEY MODEFLAG
for P in ${spiped_pipes}; do
PIDFILE=/var/run/spiped_${P}.pid
eval MODE=\$spiped_pipe_${P}_mode
eval SOURCE=\$spiped_pipe_${P}_source
eval TARGET=\$spiped_pipe_${P}_target
eval KEY=\$spiped_pipe_${P}_key
eval FLAGS=\$spiped_pipe_${P}_flags
case "$MODE" in
encrypt | client)
MODEFLAG="-e"
;;
decrypt | server)
MODEFLAG="-d"
;;
*)
echo Invalid value for spiped_pipe_${P}_mode: $MODE
continue
esac
${command} -D $MODEFLAG -s $SOURCE -t $TARGET -k $KEY \
-u ${spiped_uid}:${spiped_gid} -p $PIDFILE $FLAGS
done
}
spiped_stop()
{
local P PIDFILE
for P in ${spiped_pipes}; do
PIDFILE=/var/run/spiped_${P}.pid
if [ -f $PIDFILE ] ; then
rc_pid=$(check_pidfile $PIDFILE $command)
fi
if [ -z "$rc_pid" ]; then
[ -n "$rc_fast" ] && return 0
_run_rc_notrunning
return 1
fi
echo "Stopping ${name}."
kill $sig_stop $rc_pid
wait_for_pids $rc_pid
rm $PIDFILE
done
}
run_rc_command "$1"
|