#!/bin/sh
IFACE=$1
EVENT=$2

. /etc/sysconfig/wpa-service/wpa-service.conf

# already set...
#NETWORKDIR=/etc/sysconfig/network.d
#SERVICESDIR=/etc/sysconfig/network-devices/services

. /etc/sysconfig/rc
. $rc_functions
. $IFCONFIG

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network-devices/ifconfig.$IFACE/wpa-service


function verbose {
	[ "$VERBOSE" == "YES" ] && boot_mesg $1 "$2"
}

function test_fail {
	[ "$1" != 0 ] && RET="FAIL:$1"
	verbose '' " $RET"
	if [[ $RET = FAIL* ]]; then
		echo_failure ; return 2
	else
		return $1
	fi
}

function get_ssid {
	RET=`$WPA_CLIENT_NAME -i$IFACE status | grep ^ssid= | cut -f2- -d=` &> /dev/null
}

if [ "$EVENT" == "CONNECTED" ]; then
	get_ssid
	SSID=$RET
	verbose '' "SSID is $SSID"
	# configure network, signal DHCP client, etc.
	# If special networks definition exist, use it
	if [ -f "$NETWORKDIR/$SSID" ]; then
		IFCONFIG="$NETWORKDIR/$SSID"
		. $IFCONFIG
		export IFCONFIG
		$SERVICESDIR/$SERVICE $IFACE up
	else
		IFCONFIG="$NETWORKDIR/AUTO"
		. $IFCONFIG
		export IFCONFIG
		$SERVICESDIR/$SERVICE $IFACE up
	fi
	exit $?
fi

if [ "$EVENT" == "DISCONNECTED" ]; then
    # remove network configuration, if needed
	get_ssid
	SSID=$RET
	# configure network, signal DHCP client, etc.
	# If special networks definition exist, use it
	if [ -f "$NETWORKDIR/$SSID" ]; then
		IFCONFIG="$NETWORKDIR/$SSID"		
		. $IFCONFIG
		export IFCONFIG
		$SERVICESDIR/$SERVICE $IFACE down
	else
		IFCONFIG="$NETWORKDIR/AUTO"
		. $IFCONFIG
		export IFCONFIG
		$SERVICESDIR/$SERVICE $IFACE down
	fi
	exit $?
fi
