Gentoo Archives: gentoo-commits

From: "Anthony G. Basile (blueness)" <blueness@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in net-misc/minissdpd/files: minissdpd.initd-r2
Date: Tue, 30 Dec 2014 13:23:10
Message-Id: 20141230132304.BDDF6E7ED@oystercatcher.gentoo.org
1 blueness 14/12/30 13:23:04
2
3 Added: minissdpd.initd-r2
4 Log:
5 Improve init scripts, bug #533888. Thanks Christohper Harrington <ironiridis@×××××.com>.
6
7 (Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key 0xF52D4BBA)
8
9 Revision Changes Path
10 1.1 net-misc/minissdpd/files/minissdpd.initd-r2
11
12 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/minissdpd/files/minissdpd.initd-r2?rev=1.1&view=markup
13 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/minissdpd/files/minissdpd.initd-r2?rev=1.1&content-type=text/plain
14
15 Index: minissdpd.initd-r2
16 ===================================================================
17 #!/sbin/runscript
18
19 MINISSDPD="/usr/sbin/minissdpd"
20 PIDFILE="/var/run/minissdpd.pid"
21
22 depend() {
23 need net
24 before miniupnpd
25 }
26
27 interfaceup() {
28 # interface exists?
29 if [ ! -f /sys/class/net/$1/flags ]; then return 1; fi
30 let "IFUP = `cat /sys/class/net/$1/flags` & 1"
31 # interface has UP flag?
32 if [ $IFUP -eq 0 ]; then return 1; fi
33 return 0
34 }
35
36 # awk script: scans the /proc routing table for local subnets
37 # 1. filter list for entries with a gateway (column 3) of 0.0.0.0 (ie interface-local)
38 # 2. read column 2 for network-order hex encoded subnet address
39 # 3. match against a 10.x.x.x, 172.(16-31).x.x, or 192.168.x.x address
40 # 4. print out any interface (column 1) that matches
41 privateinterfaces() {
42 awk -f - /proc/net/route <<'FindPrivateNetworks'
43 function p(m,n) { return(and(IP,m) == n); }
44 $3=="00000000" { IP=strtonum("0x"$2); if (p(0xff,0x0a) || p(0x1fff,0x10ac) || p(0xffff,0xa8c0)) print $1; }
45 FindPrivateNetworks
46 }
47
48 start() {
49 ebegin "Starting minissdpd"
50
51 ARGS=""
52 if [ "x$MINISSDPD_IFACE" = "x" ]; then
53 ewarn "No interfaces provided, using interfaces on private networks"
54 IFLIST=$(privateinterfaces)
55 else
56 IFLIST="$MINISSDPD_IFACE"
57 fi
58
59 eindent
60 for IF in $IFLIST; do
61 if interfaceup $IF; then
62 einfo Adding interface $IF
63 ARGS+="-i $IF "
64 else
65 ewarn "Interface $IF is not up"
66 fi
67 done
68 eoutdent
69 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $MINISSDPD -- $ARGS
70 eend $?
71 }
72
73 stop() {
74 ebegin "Stopping minissdpd"
75 start-stop-daemon --stop --pidfile "${PIDFILE}"
76 eend $?
77 }