#!/bin/sh
echo [$0] $1 ... > /dev/console
CFGSCRIPT="/etc/scripts/wifi/wpscfg.php"
WPSUPSTATE="/etc/scripts/wifi/wpsupstate.php"
WPSCONF="/var/run/wps.config"
case "$1" in
init)
	PIN=`wps -g`
	devdata set -e pin=$PIN
	;
setie)
	xmldbc -P $CFGSCRIPT -V PHY_UID=WLAN-1 > $WPSCONF
	wps -c $WPSCONF -e setup > /dev/console
	;
eap:registrar|upnp:gdi)
	xmldbc -P $CFGSCRIPT -V PHY_UID=WLAN-1 -V PARAM=enrollee > $WPSCONF
	wps -c $WPSCONF > /dev/console &
	;
eap:enrollee|upnp:ssr)
	xmldbc -P $CFGSCRIPT -V PHY_UID=WLAN-1 > $WPSCONF
	wps -c $WPSCONF > /dev/console &
	;
pin)
	xmldbc -P $WPSUPSTATE -V PHY_UID=WLAN-1 -V STATE=WPS_IN_PROGRESS > /dev/console &
	event WPS.INPROGRESS
	xmldbc -P $CFGSCRIPT -V PHY_UID=WLAN-1 > $WPSCONF
	wps -c $WPSCONF -e int:pin > /dev/console &
	;
pbc)
	xmldbc -P $WPSUPSTATE -V PHY_UID=WLAN-1 -V STATE=WPS_IN_PROGRESS > /dev/console &
	event WPS.INPROGRESS
	xmldbc -P $CFGSCRIPT -V PHY_UID=WLAN-1 -V PBC=1 > $WPSCONF
	wps -c $WPSCONF -e int:pbc > /dev/console &
	;
restartap)
	shell="/var/run/wpsrestartap.sh"
	echo "#!/bin/sh"					>  $shell
	echo "xmldbc -P /etc/scripts/wifi/wpsset.php -V PHY_UID=WLAN-1" >> $shell
	echo "/etc/scripts/dbsave.sh"		>> $shell
	echo "service WIFI.WLAN-1 restart"	>> $shell
	echo "rm -f $shell"					>> $shell
	xmldbc -t "WPS:1:sh $shell > /dev/console"
	;
WPS_NONE)
	xmldbc -P $WPSUPSTATE -V PHY_UID=WLAN-1 -V STATE=WPS_NONE > /dev/console &
	event WPS.NONE
	;
WPS_IN_PROGRESS)
	xmldbc -P $WPSUPSTATE -V PHY_UID=WLAN-1 -V STATE=WPS_IN_PROGRESS > /dev/console &
	event WPS.INPROGRESS
	;
WPS_ERROR)
	xmldbc -P $WPSUPSTATE -V PHY_UID=WLAN-1 -V STATE=WPS_ERROR > /dev/console &
	event WPS.ERROR
	;
WPS_OVERLAP)
	xmldbc -P $WPSUPSTATE -V PHY_UID=WLAN-1 -V STATE=WPS_OVERLAP > /dev/console &
	event WPS.OVERLAP
	;
WPS_SUCCESS)
	xmldbc -P $WPSUPSTATE -V PHY_UID=WLAN-1 -V STATE=WPS_SUCCESS > /dev/console &
	event WPS.SUCCESS
	;
*)
	echo "usage: $0 [init|setie|eap:enrollee|eap:registrar|upnp:gdi|upnp:ssr|pin|pbc|" > /dev/console
	echo "           WPS_NONE|WPS_IN_PROGRESS|WPS_ERROR|WPS_OVERLAP|WPS_SUCCESS]" > /dev/console
	exit 9
	;
esac
exit 0;