#!/bin/sh
#
#  Start up dhclient on interface

LEASESDIR=/var/lib/wifiroamd/dhclient-leases

[ "$WIFIROAMD_DHCP" != 1 ] && exit 0

if [ "$WIFIROAMD_DHCP_USEESSIDLEASE" ]
then
	WIFIROAMD_DHCP_LEASEFILE="$WIFIROAMD_ESSID_ESCAPED"
fi
if [ "$WIFIROAMD_DHCP_USEMACLEASE" ]
then
	WIFIROAMD_DHCP_LEASEFILE="$WIFIROAMD_MACADDRESS"

	#  remove lease file if RANDOMMAC is being used.
	if [ ! -z "$WIFIROAMD_DHCP_LEASEFILE" -a ! -z "WIFIROAMD_RANDOMMAC_NEWADDRESS" ]
	then
		[ "$WIFIROAMD_VERBOSE_LEVEL" -gt 0 ] && \
			logger -t 'wifiroamd_dhclient' \
					"Removing lease file because of RANDOMMAC."
		rm -f "$WIFIROAMD_DHCP_LEASEFILE"
	fi

fi

[ -z "$WIFIROAMD_DHCP_INTERFACE" ] \
		&& WIFIROAMD_DHCP_INTERFACE="$WIFIROAMD_DEVICE"

killall dhclient dhclient3

#  Start DHCP
if [ ! -z "$WIFIROAMD_DHCP_LEASEFILE" ]
then
	[ "$WIFIROAMD_VERBOSE_LEVEL" -gt 0 ] && \
		logger -t 'wifiroamd_dhclient' "Starting dhclient with lease file" \
				"'$WIFIROAMD_DHCP_LEASEFILE' on device $WIFIROAMD_DHCP_INTERFACE"
	dhclient -pf /var/run/dhclient."$WIFIROAMD_DHCP_INTERFACE".pid \
			-lf "$LEASESDIR"/"$WIFIROAMD_DHCP_LEASEFILE" \
			"$WIFIROAMD_DHCP_INTERFACE"
else
	[ "$WIFIROAMD_VERBOSE_LEVEL" -gt 0 ] && \
		logger -t 'wifiroamd_dhclient' "Starting dhclient " \
				"on device $WIFIROAMD_DHCP_INTERFACE"
	dhclient -pf /var/run/dhclient."$WIFIROAMD_DHCP_INTERFACE".pid \
			"$WIFIROAMD_DHCP_INTERFACE"
fi
