#!/bin/sh
#
# Startup script for the miniupnp server
#
# description: This script starts your miniupnp server
# processname: miniupnpd
# pidfile: /var/run/miniupnpd.pid

SYSTEMCTL_SKIP_REDIRECT=1

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

NS="default"

miniupnpd=/usr/sbin/miniupnpd
[ -f $miniupnpd ] || exit 0

configfile="/etc/miniupnpd-${NS}.conf"
pidfile="/var/run/miniupnpd-${NS}.pid"
lockfile="/var/lock/subsys/miniupnpd-${NS}"

if [ "$NS" != "default" ]; then
   miniupnpd="ip netns exec ${NS} /usr/sbin/miniupnpd"
fi

RETVAL=0

OPTIONS="-f ${configfile} -P ${pidfile}"

case "$1" in
  start)
        echo -n "Starting miniupnpd: "
        daemon $miniupnpd $OPTIONS
        RETVAL=$?
        if [[ $RETVAL -ne 0 ]] && [ "$NS" != "default" ]; then
           if ps -p $(cat ${pidfile}) > /dev/null 2>&1
           then
              RETVAL=0
           fi
        fi
        echo
        [ $RETVAL -eq 0 ] && touch ${lockfile}
        ;;
  stop)
        echo -n "Shutting down miniupnpd: "
        killproc -p ${pidfile} ${miniupnpd}
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f ${lockfile}
        ;;
  status)
        status miniupnpd
        RETVAL=$?
        ;;
  reload)
        echo -n "Reloading miniupnpd: "
        killproc -p ${pidfile} ${miniupnpd} -HUP
        RETVAL=$?
        echo
        ;;
  restart)
        $0 stop
        $0 start
        RETVAL=$?
        ;;
  condrestart)
            if test "x`pidfileofproc miniupnpd`" != x; then
                $0 stop
                $0 start
                RETVAL=$?
            fi
            ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $RETVAL

