| #!/bin/sh |
| |
| NAME=upnpd |
| PIDFILE=/var/run/$NAME.pid |
| DAEMON=/usr/sbin/$NAME |
| CFGFILE=/etc/default/$NAME |
| |
| LAN=eth0 |
| WAN=eth0 |
| |
| # For the UPnP library to function correctly, networking must be configured |
| # properly for multicasting as described in |
| # https://sourceforge.net/p/pupnp/code/ci/master/tree/README. |
| # Without this addition, device advertisements and control point searches will |
| # not function. |
| # However, the route has to be configured once for all UPnP applications |
| # (igd2-for-linux, ushare, ...) so do not manage UPnP route by default |
| MANAGE_UPNP_MULTICAST_ROUTE_ON_LAN=0 |
| |
| # Read configuration variable file if it is present |
| if [ -f $CFGFILE ]; then |
| . $CFGFILE |
| fi |
| |
| DAEMON_ARGS="-f $WAN $LAN" |
| |
| start() { |
| if [ $MANAGE_UPNP_MULTICAST_ROUTE_ON_LAN != 0 ]; then |
| printf "Add UPnP multicast route on $LAN\n" |
| route add -net 239.0.0.0 netmask 255.0.0.0 $LAN |
| fi |
| printf "Starting $NAME: " |
| start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON -- $DAEMON_ARGS |
| [ $? = 0 ] && echo "OK" || echo "FAIL" |
| } |
| |
| stop() { |
| printf "Stopping $NAME: " |
| start-stop-daemon -K -q -p $PIDFILE |
| [ $? = 0 ] && echo "OK" || echo "FAIL" |
| if [ $MANAGE_UPNP_MULTICAST_ROUTE_ON_LAN != 0 ]; then |
| printf "Remove UPnP multicast route on $LAN\n" |
| route del -net 239.0.0.0 netmask 255.0.0.0 $LAN |
| fi |
| } |
| |
| restart() { |
| stop |
| start |
| } |
| |
| case "$1" in |
| start) |
| start |
| ;; |
| stop) |
| stop |
| ;; |
| restart|reload) |
| restart |
| ;; |
| *) |
| echo "Usage: $0 {start|stop|restart|reload}" |
| exit 1 |
| esac |
| |
| exit $? |