blueness    14/12/30 13:23:04

  Added:                minissdpd.initd-r2
  Log:
  Improve init scripts, bug #533888.  Thanks Christohper Harrington 
<[email protected]>.
  
  (Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key 
0xF52D4BBA)

Revision  Changes    Path
1.1                  net-misc/minissdpd/files/minissdpd.initd-r2

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/minissdpd/files/minissdpd.initd-r2?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/minissdpd/files/minissdpd.initd-r2?rev=1.1&content-type=text/plain

Index: minissdpd.initd-r2
===================================================================
#!/sbin/runscript

MINISSDPD="/usr/sbin/minissdpd"
PIDFILE="/var/run/minissdpd.pid"

depend() {
        need net
        before miniupnpd
}

interfaceup() {
        # interface exists?
        if [ ! -f /sys/class/net/$1/flags ]; then return 1; fi
        let "IFUP = `cat /sys/class/net/$1/flags` & 1"
        # interface has UP flag?
        if [ $IFUP -eq 0 ]; then return 1; fi
        return 0
}

# awk script: scans the /proc routing table for local subnets
# 1. filter list for entries with a gateway (column 3) of 0.0.0.0 (ie 
interface-local)
# 2. read column 2 for network-order hex encoded subnet address
# 3. match against a 10.x.x.x, 172.(16-31).x.x, or 192.168.x.x address
# 4. print out any interface (column 1) that matches
privateinterfaces() {
        awk -f - /proc/net/route <<'FindPrivateNetworks'
function p(m,n) { return(and(IP,m) == n); }
$3=="00000000" { IP=strtonum("0x"$2); if (p(0xff,0x0a) || p(0x1fff,0x10ac) || 
p(0xffff,0xa8c0)) print $1; }
FindPrivateNetworks
}

start() {
        ebegin "Starting minissdpd"

        ARGS=""
        if [ "x$MINISSDPD_IFACE" = "x" ]; then
                ewarn "No interfaces provided, using interfaces on private 
networks"
                IFLIST=$(privateinterfaces)
        else
                IFLIST="$MINISSDPD_IFACE"
        fi

        eindent
        for IF in $IFLIST; do
                if interfaceup $IF; then
                        einfo Adding interface $IF
                        ARGS+="-i $IF "
                else
                        ewarn "Interface $IF is not up"
                fi
        done
        eoutdent
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $MINISSDPD 
-- $ARGS
        eend $?
}

stop() {
        ebegin "Stopping minissdpd"
        start-stop-daemon --stop --pidfile "${PIDFILE}"
        eend $?
}




Reply via email to