| #!/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 |
| /sbin/ip addr show $IFACE scope global | grep -q "inet" |
| IP=$? |
| if [ $IP -eq 0 ]; then |
| /sbin/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 |