#!/bin/sh
#
# Start networking daemons. (with xinetd)

if [ -f /sbin/portmap ];then
	PORTMAP=/sbin/portmap
else
	echo "Could not find portmapper, please manually edit $0, and"
	echo "report this as a bug."
	exit 0
fi

test -f /usr/sbin/xinetd || exit 0

case "$1" in
  start)
	echo -n "Starting base networking daemons: "
	echo -n "portmap " ; start-stop-daemon --start --quiet --exec $PORTMAP
	echo -n "xinetd " ; start-stop-daemon --start --quiet --exec /usr/sbin/xinetd
	echo
	;;
  stop)
	echo -n "Stopping base networking daemons: "
	echo -n "xinetd " ; start-stop-daemon --stop --quiet --oknodo --signal 3 --exec /usr/sbin/xinetd
	echo -n "portmap " ; start-stop-daemon --stop --quiet --oknodo --exec $PORTMAP
	killall -9 slattach 2>/dev/null || exit 0
	echo
	;;
  reload|force-reload)
	start-stop-daemon --stop --quiet --oknodo --name xinetd --signal 10 --exec /usr/sbin/xinetd
	;;
  restart)
	echo -n "Stopping base networking daemons: "
	echo -n "xinetd " ; start-stop-daemon --stop --signal 3 --quiet --oknodo --exec /usr/sbin/xinetd
	pmap_dump >/var/run/portmap.state
	echo -n "$PORTMAP " ; start-stop-daemon --stop --quiet --oknodo --exec $PORTMAP
	echo
	echo -n "Starting base networking daemons: "
	echo -n "$PORTMAP " ; start-stop-daemon --start --quiet --exec $PORTMAP
	if [ -f /var/run/portmap.upgrade-state ]; then
          pmap_set </var/run/portmap.upgrade-state
        elif [ -f /var/run/portmap.state ]; then
          pmap_set </var/run/portmap.state
        fi
        rm -f /var/run/portmap.upgrade-state /var/run/portmap.state
	echo -n "xinetd" ; start-stop-daemon --start --quiet --exec /usr/sbin/xinetd
	echo
	;;
  *)
	echo "Usage: $0 {start|stop|reload|restart|force-reload}"
	exit 1
	;;
esac

exit 0
