diff options
Diffstat (limited to 'net-misc/minissdpd/files')
-rw-r--r-- | net-misc/minissdpd/files/minissdpd-1.2-remove-initd.patch | 14 | ||||
-rw-r--r-- | net-misc/minissdpd/files/minissdpd.confd | 10 | ||||
-rw-r--r-- | net-misc/minissdpd/files/minissdpd.initd-r2 | 61 |
3 files changed, 85 insertions, 0 deletions
diff --git a/net-misc/minissdpd/files/minissdpd-1.2-remove-initd.patch b/net-misc/minissdpd/files/minissdpd-1.2-remove-initd.patch new file mode 100644 index 000000000000..9a5f5966e90f --- /dev/null +++ b/net-misc/minissdpd/files/minissdpd-1.2-remove-initd.patch @@ -0,0 +1,14 @@ +diff -Naur minissdpd-1.1.20120121.orig//Makefile minissdpd-1.1.20120121/Makefile +--- minissdpd-1.1.20120121.orig//Makefile 2012-01-02 05:46:24.000000000 -0500 ++++ minissdpd-1.1.20120121/Makefile 2012-01-22 07:01:54.000000000 -0500 +@@ -42,10 +42,6 @@ + $(INSTALL) minissdpd $(SBININSTALLDIR) + $(INSTALL) -d $(MANINSTALLDIR)/man1 + $(INSTALL) minissdpd.1 $(MANINSTALLDIR)/man1/minissdpd.1 +-ifneq ($(OS), Darwin) +- $(INSTALL) -d $(PREFIX)/etc/init.d +- $(INSTALL) minissdpd.init.d.script $(PREFIX)/etc/init.d/minissdpd +-endif + + minissdpd: $(MINISSDPDOBJS) + $(CC) $(CFLAGS) -o $@ $(MINISSDPDOBJS) diff --git a/net-misc/minissdpd/files/minissdpd.confd b/net-misc/minissdpd/files/minissdpd.confd new file mode 100644 index 000000000000..43b662eca182 --- /dev/null +++ b/net-misc/minissdpd/files/minissdpd.confd @@ -0,0 +1,10 @@ +# /etc/conf.d/minissdpd: config file for /etc/init.d/minissdpd + +# Configure on which interface or interfaces minissdpd will listen. +# List all interfaces space separated. If this is not specified then +# minissdpd will listen on just the interface for the default route. +# You probably want that when running minissdpd with miniupnpc on the +# client, but you most likely want to specify the internal interface +# when running with miniupnpd on the gateway. +# +# MINISSDPD_IFACE="eth0 eth1" diff --git a/net-misc/minissdpd/files/minissdpd.initd-r2 b/net-misc/minissdpd/files/minissdpd.initd-r2 new file mode 100644 index 000000000000..c8da58753360 --- /dev/null +++ b/net-misc/minissdpd/files/minissdpd.initd-r2 @@ -0,0 +1,61 @@ +#!/sbin/openrc-run + +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 $? +} |