[ -f @initconfig@ ] && . @initconfig@
: ${prefix=@prefix@} ${exec_prefix=@exec_prefix@}
: ${bindir=@bindir@} ${sbindir=@sbindir@}
-: ${TRIPEDIR=@configdir@}
+: ${TRIPEDIR=@configdir@} ${tripesock=@socketdir@/tripesock}
+: ${pidfile=@pidfile@}
: ${tripe=$sbindir/tripe} ${tripectl=$bindir/tripectl}
PATH=/usr/bin:/usr/sbin:/bin:/sbin:$bindir
export PATH TRIPEDIR
+# --- Give up if there's no key ---
+
+if test ! -f $TRIPEDIR/keyring || test ! -f $TRIPEDIR/keyring.pub; then
+ echo >&2 "Not starting/stopping TrIPE: keyring files missing"
+ exit 0
+fi
+
# --- Check it will work, or at least stands a fighting chance ---
#
# Having loads of different tunnel types doesn't help any.
test -x $tripe -a -x $tripectl || exit 0
-case `$tripe --tunnel` in
+case ${tunnel-`$tripe --tunnels | head -1`} in
linux)
case `uname -s` in
Linux)
;;
esac
;;
+ slip)
+ if test "$TRIPE_SLIPIF" = ""; then
+ echo >&2 "$tripe needs SLIP interfaces set up!"
+ exit 1
+ fi
+ ;;
esac
# --- Do what was wanted ---
case "$1" in
start)
echo -n "Starting TrIPE VPN daemon:"
- if $tripectl help >/dev/null 2>/dev/null; then
+ if $tripectl version >/dev/null 2>/dev/null; then
echo " already running"
exit 0
fi
$tripectl -D -s -p$tripe \
-f${logfile-@logfile@} \
- -P${pidfile-@pidfile@} \
+ -P$pidfile \
+ ${keytag+-S-t}$keytag \
${addr+-S-b}$addr \
${port+-S-p}${port} \
${user+-S-u}${user} \
${group+-S-g}${group} \
${trace+-S-T}${trace} \
+ ${tunnel+-S-n}${tunnel} \
${miscopts}
for i in 1 2 3 4 give-up; do
$tripectl help >/dev/null 2>/dev/null && break
;;
stop)
echo -n "Stopping TrIPE VPN daemon:"
- $tripectl quit
- echo " done"
+ if test ! -S $tripesock; then
+ echo " not running"
+ elif $tripectl quit >/dev/null 2>&1; then
+ echo " done"
+ elif test ! -f $pidfile; then
+ echo " stale socket found: removing"
+ rm -f $tripesock
+ elif kill `cat $pidfile`; then
+ echo " done (killed violently)"
+ else
+ echo " it doesn't want do die!"
+ exit 1
+ fi
;;
status)
for i in `$tripectl list`; do
$tripectl stats $i | sed 's/^/ /'
done
;;
+ reload)
+ $tripectl reload
+ echo "Keyrings reloaded OK."
+ ;;
restart | force-reload)
sh $0 stop
sh $0 start
;;
*)
- echo >&2 "usage: $0 start|stop|restart|status|force-reload"
+ echo >&2 "usage: $0 start|stop|restart|status|reload|force-reload"
exit 1
;;
esac