| #!/sbin/runscript |
| |
| MINISSDPD="/usr/sbin/minissdpd" |
| PIDFILE="/var/run/minissdpd.pid" |
| |
| ROUTE="/bin/route" |
| IFCONFIG="/bin/ifconfig" |
| |
| depend() { |
| need net |
| before miniupnpd |
| } |
| |
| checkconfig() { |
| if [ "x$MINISSDPD_IFACE" != "x" ]; then |
| interfaces=$($IFCONFIG | grep "Link encap" | awk '{ print $1 }') |
| for interface in $MINISSDPD_IFACE; do |
| hit=0 |
| for available in $interfaces; do |
| if [ "$interface" = "$available" ]; then |
| hit=1 |
| fi |
| done |
| if [ $hit = 0 ]; then |
| ewarn "Interface $interface not available" |
| return 1 |
| fi |
| done |
| fi |
| return 0 |
| } |
| |
| start() { |
| ebegin "Starting minissdpd" |
| checkconfig || return 1 |
| |
| if [ "x$MINISSDPD_IFACE" = "x" ]; then |
| # We assume that the default interface has an IP address |
| interface=$($ROUTE | grep default | awk -- '{ print $8 }') |
| IP="$($IFCONFIG $interface | grep 'inet' | sed 's/^.*inet \([0-9.]\+\).\+/\1/')" |
| ARGS="-i $IP " |
| else |
| ARGS="" |
| for interface in $MINISSDPD_IFACE; do |
| # An interface may not have an IP address, so don't listen if it doesn't |
| IP="$($IFCONFIG $interface | grep 'inet' | sed 's/^.*inet \([0-9.]\+\).\+/\1/')" |
| if [ "x$IP" != "x" ]; then |
| ARGS+="-i $IP " |
| fi |
| done |
| fi |
| |
| start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $MINISSDPD -- $ARGS |
| eend $? |
| } |
| |
| stop() { |
| ebegin "Stopping minissdpd" |
| start-stop-daemon --stop --pidfile "${PIDFILE}" |
| eend $? |
| } |