12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/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 $?
|