ports/sysutils/spiped/files/spiped.in
Colin Percival b41aa230b0 Add support for passing additional flags to spiped via new
spiped_pipe_X_flags variables.  Replace USE_OPENSSL with
USES ssl. [1]

While I'm here, clarify the comment about needing C99 but
preferring a compiler with AESNI support; it applies to the
USES compiler:c11 part but not tar:tgz or ssl.

PR:		215501
Submitted by:	Dave Cottlehuber
2016-12-23 03:47:39 +00:00

80 lines
1.7 KiB
Bash

#!/bin/sh
# $FreeBSD$
#
# 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_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"}
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 -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"