#!/bin/sh
# udhcpc script edited by Tim Riker <Tim@Rikers.org> with zerconf support

[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1

RESOLV_CONF="/etc/resolv.conf"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"

case "$1" in
    deconfig)
    /sbin/ifconfig $interface 0.0.0.0
    ;;

    renew|bound)
    /sbin/ifconfig $interface $ip $BROADCAST $NETMASK

    if [ -n "$router" ] ; then
	echo "deleting routers"
	while route del default gw 0.0.0.0 dev $interface ; do
	    :
	done

	if [ -e /etc/default_gw ]; then
	    default_gw=`cat /etc/default_gw`
	else
	    default_gw=$interface
	fi
	if [ "$interface" = "$default_gw" ]; then
	    for i in $router ; do
		route add default gw $i dev $interface
	    done
	fi
    fi

    echo -n > $RESOLV_CONF
    [ -n "$domain" ] && echo "search $domain" >> $RESOLV_CONF

    for i in $dns ; do
      echo "adding dns $i"
      echo "nameserver $i" >> $RESOLV_CONF
    done
    ;;

    zeroconf)
    /sbin/ifconfig $interface $ip broadcast 169.254.255.255 netmask 255.255.0.0

    echo "deleting routers"

    while /sbin/route del default gw 0.0.0.0 dev $interface ; do
	:
    done

    echo -n > $RESOLV_CONF
    ;;

esac

exit 0

