#!/bin/bash

### BEGIN INIT INFO
# Provides:          minissdpd
# Required-Start:    $remote_fs $all
# Required-Stop:     $remote_fs
# Should-Start:      $local_fs
# Should-Stop:       $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: keep memory of all UPnP devices that announced themselves
# Description:       MiniSSDPd is a small daemon used by MiniUPnPc (a UPnP control point for IGD
#                    devices) to speed up device discoveries. MiniSSDPd keep memory of all UPnP
#                    devices that announced themselves on the network through SSDP NOTIFY packets.
#                    MiniSSDPd also has the ability to handle all SSDP traffic recieved on a
#                    computer via the multicast group 239.255.255.250:1900.
### END INIT INFO

. /lib/lsb/init-functions

if [ -f "/etc/default/minissdpd" ] ; then
	. /etc/default/minissdpd
else
	echo "MiniSSDPd: Default file not found: exiting"
	exit 0
fi

if ! [ "${START_DAEMON}" = "1" ] ; then
	echo "MiniSSDPd: /etc/default/minissdpd isn't set to START_DAEMON=1: exiting"
	exit 0
fi

if [ -z ${MiniSSDPd_INTERFACE_ADDRESS} ] ; then
	echo "MiniSSDPd: no interface defined: exiting"
	exit 0
fi

# Exit if package is removed but not purged
if ! [ -x /usr/sbin/minissdpd ] ; then
	exit 0
fi

case "$1" in
	start)
		log_daemon_msg "Starting UPnP devices daemon" "MiniSSDPd"
		start-stop-daemon --start --pidfile /var/run/minissdpd.pid --exec "/usr/sbin/minissdpd" -- -i ${MiniSSDPd_INTERFACE_ADDRESS}
		log_end_msg $?
        ;;

	stop)
		log_daemon_msg "Stopping UPnP devices daemon" "minissdpd"
		start-stop-daemon --stop --oknodo --pidfile /var/run/minissdpd.pid
		log_end_msg $?
	;;

	restart|reload|force-reload)
		$0 stop
		sleep 1
		$0 start
	;;

	*)
		echo 'Usage: /etc/init.d/minissdpd {start|stop|restart|reload}'
		exit 1

esac

exit 0
