#!/bin/dash
#Called by wpa_cli daemon. Wpa_cli is executed like this 'wpa_cli -a dhcpcd-wpagui'.
#Wpa_cli calls dhcpcd-wpagui with: $1 is the interface (eth0, ath0, etc), 
#and $2 is the event - either "CONNECTED" or "DISCONNECTED". 

TIMEOUT=120	# in seconds
PIDFILE=/tmp/dhcpcd-wpagui.${1}.pid

# helper - kill wpagui-initated dhcpcd
kill_dhcpcd() {
	if [ -f $PIDFILE ]; then
		read pid < $PIDFILE
		kill $pid; sleep 1; kill -0 $pid && kill -9 $pid
		rm -f $PIDFILE
		ifconfig $1 0.0.0.0
	fi
}

### main
kill_dhcpcd # always kill previous wpagui-initiated dhcpcd
case "$2" in
	CONNECTED)
		#dhcpcd -q -t $TIMEOUT -L -h $(hostname) $1 # timeout, no ipv4ll, pass hostname to dhcp server
		dhcpcd -q -b -L -h $(hostname) $1 # background immediately, no ipv4ll, pass hostname to dhcp server
		cat /var/run/dhcpcd-$1.pid > $PIDFILE		
		;;
		
	DISCONNECTED)
		;;
esac
