#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
if [ $reason = "PREINIT" -o $reason = "PREINIT6" ]; then
	ip link set $interface up
	tries=50
	while ! (ip link show $interface|grep LOWER_UP > /dev/null 2>&1); do
		sleep 0.1
		if [ $tries = 0 ]; then
			break
		fi
		tries=$((tries-1))
	done
elif [ $reason = "BOUND" ]; then
	if [ ! -z "$old_ip_address" ]; then
		ip addr del dev $interface $old_ip_address/$old_subnet_mask
	fi
        for oldip in `ip -o addr show dev $interface|awk '{print $4}'`; do
		ip addr del dev $interface $oldip
	done
	if [ ! -z "$new_ip_address" -a ! -z "$new_subnet_mask" ]; then
		ip addr add dev $interface $new_ip_address/$new_subnet_mask
	fi
	if [ ! -z "$new_host_name" ]; then
		hostname $new_host_name
		lldptool -T -i $interface -V 5 enableTx=yes  >& /dev/null
	fi
	if [ ! -z "$new_domain_name" ]; then
		echo search $new_domain_name >> /etc/resolv.conf
	fi
	for ns in $new_domain_name_servers; do
		echo nameserver $ns >> /etc/resolv.conf
	done
	for ntp in $new_ntp_servers; do
		echo server $ntp iburst >> /etc/ntp.conf
	done
	for gw in $new_routers; do
		ip route add default via $gw
	done

	if [ ! -z "$new_tcode" -a -r "/usr/share/zoneinfo/posix/$new_tcode" ]; then
		cp "/usr/share/zoneinfo/posix/$new_tcode" /etc/localtime
		rm -rf /usr/share/zoneinfo #free up ramdisk
	fi
elif [ $reason = "BOUND6" ]; then
	if [ ! -z "$old_ip6_address" ]; then
		ip addr del dev $interface $old_ip6_address/$old_ip6_prefixlen
	fi
	if [ ! -z "$new_ip6_address" ]; then 
		ip addr add dev $interface $new_ip6_address/$new_ip6_prefixlen
	fi
elif [ $reason = "RELEASE" ]; then
	if [ ! -z "$old_ip_address" ]; then
		ip addr del dev $interface $old_ip_address/$old_subnet_mask
	fi
elif [ $reason = "RELEASE6" ]; then
	if [ ! -z "$old_ip6_address" ]; then
		ip addr del dev $interface $old_ip6_address/$old_ip6_prefixlen
	fi
fi
exit 0
