]> code.ossystems Code Review - openembedded-core.git/commitdiff
Add zeroconf from OE
authorRichard Purdie <richard@openedhand.com>
Tue, 9 May 2006 18:39:01 +0000 (18:39 +0000)
committerRichard Purdie <richard@openedhand.com>
Tue, 9 May 2006 18:39:01 +0000 (18:39 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@387 311d38ba-8fff-0310-9ca6-ca027cbcb966

openembedded/packages/zeroconf/files/debian-zeroconf [new file with mode: 0644]
openembedded/packages/zeroconf/files/zeroconf-default [new file with mode: 0644]
openembedded/packages/zeroconf/zeroconf_0.9.bb [new file with mode: 0644]

diff --git a/openembedded/packages/zeroconf/files/debian-zeroconf b/openembedded/packages/zeroconf/files/debian-zeroconf
new file mode 100644 (file)
index 0000000..c3705d2
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+if [ ! -x /usr/sbin/zeroconf ]; then
+    exit 0
+fi
+
+# IPv4 link-local addresses (zeroconf) are
+# only applicable on the 'inet' address family
+[ "X$ADDRFAM" != "Xinet" ] && exit 0
+
+# However there are some methods where it doesn't
+# make any sense to configure an IPv4LL address
+
+# not on loopback
+[ "X$METHOD" = "Xloopback" ] && exit 0
+
+# not on ppp or wvdial either
+[ "X$METHOD" = "Xppp" ] && exit 0
+[ "X$METHOD" = "Xwvdial" ] && exit 0
+
+# The administrator may have blacklisted interfaces
+# or only want zeroconf in a fallback situation
+[ -f /etc/default/zeroconf ] &&
+    . /etc/default/zeroconf
+
+[ -n "$DISABLE" ] && exit 0
+
+for BLACK in $IFBLACKLIST; do
+    case $IFACE in
+       $BLACK)
+       exit 0
+       ;;
+    esac
+done
+
+# should we only allocate an address if we do not already have one?
+if [ -n "$FALLBACK" ]; then
+    /bin/ip addr show $IFACE scope global | grep -q "inet"
+    IP=$?
+    if [ $IP -eq 0 ]; then
+        /bin/ip route add 169.254.0.0/16 dev $IFACE
+        exit 0
+    fi
+fi
+
+# otherwise, run if we aren't already going
+if [ ! -r /var/run/zeroconf.$IFACE.pid ]; then
+       /usr/sbin/zeroconf -i $IFACE
+fi
+
+exit 0
diff --git a/openembedded/packages/zeroconf/files/zeroconf-default b/openembedded/packages/zeroconf/files/zeroconf-default
new file mode 100644 (file)
index 0000000..cc07b27
--- /dev/null
@@ -0,0 +1,17 @@
+# Default for zeroconf
+
+# disable zeroconf
+# If you want to disable zeroconf completely, uncomment the following line
+# this may be useful if you are debugging zeroconf or starting it manually
+#DISABLE=yes
+
+# black-listed interfaces
+# Interfaces which you never wish to have zeroconf run on should
+# be listed here. e.g. "eth2 wlan1" in a space seperated string
+IFBLACKLIST=""
+
+# fallback only
+# If you would only like a link-local address if you were unable to
+# obtain an address via DHCP then uncomment the following line
+#FALLBACK=yes
+
diff --git a/openembedded/packages/zeroconf/zeroconf_0.9.bb b/openembedded/packages/zeroconf/zeroconf_0.9.bb
new file mode 100644 (file)
index 0000000..c8f7ddf
--- /dev/null
@@ -0,0 +1,21 @@
+DESCRIPTION = "IPv4 link-local address allocator"
+AUTHOR = "Anand Kumria <wildfire@progsoc.uts.edu.au>"
+HOMEPAGE = "http://www.progsoc.org/~wildfire/zeroconf/"
+LICENSE = "GPL"
+SECTION = "net"
+PRIORITY = "optional"
+
+PR = "r0"
+
+SRC_URI = "http://www.progsoc.org/~wildfire/zeroconf/download/${PN}-${PV}.tar.gz \
+          file://zeroconf-default \
+          file://debian-zeroconf"
+
+do_install () {
+       install -d ${D}${sbindir}
+       install -d ${D}${sysconfdir}/network/if-up.d
+       install -d ${D}${sysconfdir}/default
+       install -c -m 755 ${S}/zeroconf ${D}${sbindir}/zeroconf
+       install -c -m 755 ${WORKDIR}/debian-zeroconf ${D}${sysconfdir}/network/if-up.d/zeroconf
+       install -c ${WORKDIR}/zeroconf-default ${D}${sysconfdir}/default/zeroconf
+}