diff options
-rw-r--r-- | openembedded/packages/zeroconf/files/debian-zeroconf | 51 | ||||
-rw-r--r-- | openembedded/packages/zeroconf/files/zeroconf-default | 17 | ||||
-rw-r--r-- | openembedded/packages/zeroconf/zeroconf_0.9.bb | 21 |
3 files changed, 89 insertions, 0 deletions
diff --git a/openembedded/packages/zeroconf/files/debian-zeroconf b/openembedded/packages/zeroconf/files/debian-zeroconf new file mode 100644 index 000000000..c3705d278 --- /dev/null +++ b/openembedded/packages/zeroconf/files/debian-zeroconf @@ -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 index 000000000..cc07b275f --- /dev/null +++ b/openembedded/packages/zeroconf/files/zeroconf-default @@ -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 index 000000000..c8f7ddfa3 --- /dev/null +++ b/openembedded/packages/zeroconf/zeroconf_0.9.bb @@ -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 +} |