#!/bin/sh
#
# Starts the upnpd daemon
#
# chkconfig: 35 95 5
# description: Internet Gateway Device
# processname: upnpd
#
### BEGIN INIT INFO
# Provides:          upnpd
# Required-Start:    $syslog $remote_fs
# Should-Start:      
# Required-Stop:     $syslog $remote_fs
# Should-Stop:       
# Default-Start:     3 5
# Default-Stop:      0 1 2 6
# Short-Description: Linux UPnP Internet Gateway Device
# Description:       Start Linux UPnP Internet Gateway Device daemon
#	to allow UPnP aware clients, such as MSN Messenger to work
#	properly from behind a Linux NAT firewall.
### END INIT INFO

UPNPD=/usr/sbin/upnpd
PIDFILE=/var/run/upnpd.pid

# Read config
. /etc/sysconfig/upnpd

# Source LSB init functions
. /lib/lsb/init-functions

case "$1" in
    start)
	echo -n "Starting upnpd "
	/sbin/ip route add 224/4 dev ${INTIFACE} > /dev/null 2>&1
	start_daemon -p ${PIDFILE} ${UPNPD} ${EXTIFACE} ${INTIFACE}
	RETVAL=$?
	PID=$(pidofproc ${UPNPD})
	test ${RETVAL} -eq 0 && echo ${PID} > ${PIDFILE}; log_success_msg || log_failure_msg
	;;
    stop)
	echo -n "Shutting down upnpd "
	killproc -p ${PIDFILE} -TERM ${UPNPD}
	RETVAL=$?
	test ${RETVAL} -eq 0 && rm -f ${PIDFILE}; log_success_msg || log_failure_msg
	;;
    clean)
	echo -n "Cleaning upnpd firewall rules "
	killproc -p ${PIDFILE} -USR1 ${UPNPD}
	RETVAL=$?
	test ${RETVAL} -eq 0 && log_success_msg || log_failure_msg
	;;
    restart)
	$0 stop
	$0 start
	;;
    status)
	echo -n "Checking for service upnpd "
	pidofproc ${UPNPD} > /dev/null
	RETVAL=$?
	test ${RETVAL} -eq 0 && log_success_msg || log_failure_msg
	;;
    *)
	echo "Usage: $0 {start|stop|clean|restart|status}"
	exit 1
	;;
esac

exit ${RETVAL}
