#!/bin/sh
# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
    set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
fi
### BEGIN INIT INFO
# Provides:          rtsp-server-perl
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: RTSP/RTP server
# Description:       Lightweight RTSP/RTP streaming media server
### END INIT INFO

# Author: Adam Cecile <acecile@le-vert.net>

DESC="RTSP/RTP server"
DAEMON=/usr/bin/rtsp-server-perl
CLIENT_PORT=554
CLIENT_BIND=127.0.0.1
SERVER_PORT=5545
SERVER_BIND=127.0.0.1
LOG_LEVEL=3
EXTRA_OPTS=""

[ ! -f /etc/default/rtsp-server-perl ] || . /etc/default/rtsp-server-perl

# This may be overridden in /etc/default/rtsp-server-perl
DAEMON_ARGS="--clientport ${CLIENT_PORT} --serverport ${SERVER_PORT} --client_listen_address ${CLIENT_BIND} --source_listen_address ${SERVER_BIND} --loglevel ${LOG_LEVEL} ${EXTRA_OPTS}"

# start-stop-daemon, via /lib/init/init-d-script
START_ARGS="--background --make-pidfile"

# Override do_start_cmd(), as the name rtsp-server-perl is too long
do_start_cmd_override() {
	start-stop-daemon --start --quiet --oknodo \
	    --pidfile ${PIDFILE} $START_ARGS \
	    --startas $DAEMON --exec $DAEMON -- $DAEMON_ARGS
}

# Override do_stop_cmd(): during start, the rtsp-server-perl process is replaced
# by /usr/bin/perl, which breaks process matching.
do_stop_cmd_override() {
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 \
	    $STOP_ARGS \
	    --pidfile ${PIDFILE} --exec /usr/bin/perl
	RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2
	# Many daemons don't delete their pidfiles when they exit.
	rm -f $PIDFILE
	return $RETVAL
}
