#!/bin/sh

UDHCPC="udhcpc"
UDHCPC_PID_FILE="/var/run/udhcpc.pid"
UDHCPC_DEFAULT_SCRIPT="/usr/bin/stalan.script"

LANIF=`rdcsman 0x8000F391 str`
HOSTNAME=`rdcsman 0x00010036 str`

stalan_status()
{	
	TIME=0
	TIMEOUT=10
	while [ true ] ; do	
		sl_get_IP_NM_GW_in_ifconfig $LANIF IF_IP IF_NM IF_GW
		#echo "$0 : IF_IP=$IF_IP IF_NM=$IF_NM IF_GW=$IF_GW"	
		if [ "${IF_IP}x" != "x" -a "${IF_NM}x" != "x" -a "${IF_GW}x" != "x" ] ; then	
			return 0		
		else			
			sleep 1
			TIME=$((TIME+1))
			if [ $TIME -gt $TIMEOUT ] ; then
				return 1	
			fi			
		fi
	done
}


stalan_start()
{
	for i in 1
	do	
		$UDHCPC -n -i $LANIF -p $UDHCPC_PID_FILE -s $UDHCPC_DEFAULT_SCRIPT --hostname="$HOSTNAME"
		
		if [ $? = 0 ] ; then
			return $?
		fi	
		
	done		
	return $?
}


stalan_stop()
{
		
	if [ -f "$UDHCPC_PID_FILE" -a -r "$UDHCPC_PID_FILE" ] ; then 
		UDHCPC_PID=`cat $UDHCPC_PID_FILE`
		rm -f $UDHCPC_PID_FILE
		kill $UDHCPC_PID > /dev/null 2>&1 || exit 1
	fi
			
	#ifconfig $ETH 0.0.0.0
	return 0
}

# main ##########################################################

. /usr/bin/scriptlib

case "$1" in

	start)
		stalan_start
		if [ $? = 1 ] ; then
			#ifconfig $ETH 0.0.0.0 
			exit 1
		fi	
		exit 0	
		;;
	
	stop)
		stalan_stop
		;;
	
	release)
		if [ -f "$UDHCPC_PID_FILE" -a -r "$UDHCPC_PID_FILE" ] ; then 
			UDHCPC_PID=`cat $UDHCPC_PID_FILE`
			kill -USR2 $UDHCPC_PID			
		fi		
		exit 0		
		;;
	
	renew)
		
		if [ -f "$UDHCPC_PID_FILE" -a -r "$UDHCPC_PID_FILE" ] ; then 
			UDHCPC_PID=`cat $UDHCPC_PID_FILE`
			kill -USR1 $UDHCPC_PID
			stalan_status			 			 
		else
			$UDHCPC -n -i $LANIF -p $UDHCPC_PID_FILE -s $UDHCPC_DEFAULT_SCRIPT --hostname="$HOSTNAME"		
		fi
		
		exit 0									
		;;		
	*)
		exit 1
		;;
esac

exit 0		
			
