#!/bin/sh
# executed by udhcpc
# parameters: $1 and environment
# $1 is:
#
# deconfig: udhcpc starts, or lease is lost.
# Environment example: interface=eth0
#
# bound: lease is obtained. Environment example:
# dhcptype=5
# serverid=172.16.42.102
# lease=97200
# interface=eth0
# ip=172.16.42.177
# subnet=255.255.255.0
# mask=24
# broadcast=172.16.22.255
# router=172.16.42.98
# dns=10.34.32.125 10.32.63.5 10.34.255.7 10.11.255.27
# domain=lab.example.com example.com
# ntpsrv=10.34.32.125 10.34.255.7
#
# renew: lease is renewed. Environment is similar to "bound".
# The IP address does not change, however, the other DHCP parameters,
# such as the default gateway, subnet mask, and dns server may change.
#
# nak: udhcpc received a NAK message.
# Environment example: interface=eth0
#
# leasefail: udhcpc cannot obtain a lease (DHCP server not responding, etc).
# Environment example: interface=eth0

# TODO: put $domain into /etc/resolv.conf (thru /var/service/fw)

service=${PWD##*/}
file_ipconf="$service.ipconf"
file_ntpconf="$service.ntpconf"
dir_ipconf="/var/run/service/fw"
dir_ntpconf="/var/run/service/ntpd"

exec >/dev/null
#exec >>"$0.out"  #debug
exec 2>&1

echo "`date`: Params: $*"

if test x"$1" != x"bound" && test x"$1" != x"renew" ; then
	# Reconfigure network with this interface disabled
	echo "Deconfiguring"
	rm "env.out"
	rm "$file_ipconf"
	rm "$file_ntpconf"
	rm "$dir_ipconf/$file_ipconf"
	rm "$dir_ntpconf/$file_ntpconf"
	svc -u fw
	exit
fi

# Bound: we've got the lease
# Record information for e.g. dhcp_$IF_pinger service
env >"env.out"

./convert2ipconf "$file_ipconf"
# Reconfigure routing and firewall if needed
diff --brief "$file_ipconf" "$dir_ipconf/$file_ipconf" >/dev/null 2>&1
if test $? != 0; then
	echo "Reconfiguring fw"
	mkdir -p "$dir_ipconf" 2>/dev/null
	cp "$file_ipconf" "$dir_ipconf/$file_ipconf"
	svc -u fw
fi

if test -d ../ntpd; then
	./convert2ntpconf "$file_ntpconf"
	# Reconfigure ntp server addresses if needed
	diff --brief "$file_ntpconf" "$dir_ntpconf/$file_ntpconf" >/dev/null 2>&1
	if test $? != 0; then
		echo "Reconfiguring ntp"
		mkdir -p "$dir_ntpconf" 2>/dev/null
		cp "$file_ntpconf" "$dir_ntpconf/$file_ntpconf"
		svc -t ntpd
		svc -u ntpd
	fi
fi
