# This script runs last, after all network configuration
# has completed. It sets a property to let the framework
# know that setting up the interface is complete.

# For debugging:
setprop dhcp.${interface}.reason "${reason}"

set_leasedfrom()
{
	case "${reason}" in
	BOUND|REBIND|REBOOT|RENEW)
	    setprop dhcp.${interface}.leasedfrom `date +'%s'`
	    ;;
	esac
}

auto_ip()
{
	case "${reason}" in
	BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|IPV4LL)
	    setprop dhcp.${interface}.ipaddress "${new_ip_address}"
	    setprop dhcp.${interface}.gateway   "${new_routers%% *}"
	    setprop dhcp.${interface}.mask      "${new_subnet_mask}"
	    setprop dhcp.${interface}.leasetime "${new_dhcp_lease_time}"
	    setprop dhcp.${interface}.server    "${new_dhcp_server_identifier}"

	    setprop dhcp.${interface}.result "ok"

		set_leasedfrom
	    ;;

	EXPIRE|FAIL|STOP)
	    setprop dhcp.${interface}.result "failed"
	    ;;

	RELEASE)
	    setprop dhcp.${interface}.result "released"
	    ;;
	esac
}

no_auto_ip()
{
	case "${reason}" in
	BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT)
	    setprop dhcp.${interface}.ipaddress "${new_ip_address}"
	    setprop dhcp.${interface}.gateway   "${new_routers%% *}"
	    setprop dhcp.${interface}.mask      "${new_subnet_mask}"
	    setprop dhcp.${interface}.leasetime "${new_dhcp_lease_time}"
	    setprop dhcp.${interface}.server    "${new_dhcp_server_identifier}"

	    setprop dhcp.${interface}.result "ok"

		set_leasedfrom
	    ;;

	EXPIRE|FAIL|IPV4LL|STOP)
	    setprop dhcp.${interface}.result "failed"
	    ;;

	RELEASE)
	    setprop dhcp.${interface}.result "released"
	    ;;
	esac
}


default()
{
	# For debugging:
	# setprop dhcp.${interface}.reason "default_${reason}"
	no_auto_ip
}

case "${autoip}" in
ENABLE)
	auto_ip;;
DISABLE)
	no_auto_ip;;
*)
	default;;
esac

