zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/app/Script/wifi_script/realtek/wlanapp_8192c.sh b/ap/app/Script/wifi_script/realtek/wlanapp_8192c.sh
new file mode 100644
index 0000000..3848dbf
--- /dev/null
+++ b/ap/app/Script/wifi_script/realtek/wlanapp_8192c.sh
@@ -0,0 +1,464 @@
+#!/bin/sh
+#
+# script file to start wlan applications (IAPP, Auth, Autoconf) daemon
+#
+# Usage: wlanapp.sh [start|kill] wlan_interface...br_interface
+#
+
+## error code
+ERROR_WSCD_START_FAIL=8
+
+if [ $# -lt 2 ] || [ $1 != 'start' -a $1 != 'kill' ] ; then 
+	echo "Usage: $0 [start|kill] wlan_interface...br_interface" >> $LOG
+	exit 1 
+fi
+#CUR_PATH=`pwd`
+#TOP_VAR_DIR="/etc_ro"
+ROOT=`nv get wifi_root_dir`
+LOG=$ROOT/wifi/realtek/slog
+
+TOP_VAR_DIR="$ROOT/wifi/realtek"
+TOP_ETC_DIR="/etc_ro/realtek/ath"
+TOP_TMP_DIR="$ROOT/tmp"
+CONFIG_ROOT_DIR="$ROOT/wifi/realtek/rtl8192c"
+
+if [ ! -d "$TOP_TMP_DIR" ]; then
+    mkdir $TOP_TMP_DIR
+fi
+
+if [ -z "$BIN_DIR" ]; then
+	BIN_DIR=`cat $CONFIG_ROOT_DIR/wifi_bin_dir`
+fi
+
+if [ -z "$WLAN_PREFIX" ]; then
+	WLAN_PREFIX=wlan
+fi
+#WLAN_PREFIX_LEN=${#WLAN_PREFIX}
+#WLAN_NAME_LEN=$((WLAN_PREFIX_LEN + 1))
+
+if [ -z "$ROOT_WLAN" ]; then
+#	ROOT_WLAN=${2:0:$WLAN_NAME_LEN}
+	ROOT_WLAN=${2%%-*}
+fi
+ROOT_CONFIG_DIR=$CONFIG_ROOT_DIR/$ROOT_WLAN
+
+GET_VALUE=
+GET_VALUE_TMP=
+KILLALL=killall
+FLASH_PROG=flash
+SLEEP=sleep
+
+START=1
+PARAM_NUM=$#
+PARAM_ALL=$*
+PARAM1=$1
+PARAM_BR=
+WLAN_INTERFACE=
+
+WLAN0_MODE=
+WLAN0_DISABLED=
+WLAN0_WSC_DISABLED=
+
+WLAN1_MODE=0
+WLAN1_DISABLED=1
+WLAN1_WSC_DISABLED=1
+both_band_ap=0
+
+rtl_check_wlan_band(){
+
+	WLAN0_MODE=`cat $CONFIG_ROOT_DIR/wlan0/wlan_mode`
+	WLAN0_DISABLED=`cat $CONFIG_ROOT_DIR/wlan0/wlan_disabled`
+	WLAN0_WSC_DISABLED=`cat $CONFIG_ROOT_DIR/wlan0/wsc_disabled`
+
+	if [ -d "$CONFIG_ROOT_DIR/wlan1" ] ; then
+		WLAN1_MODE=`cat $CONFIG_ROOT_DIR/wlan1/wlan_mode`
+		WLAN1_DISABLED=`cat $CONFIG_ROOT_DIR/wlan1/wlan_disabled`
+		WLAN1_WSC_DISABLED=`cat $CONFIG_ROOT_DIR/wlan1/wsc_disabled`
+	fi
+
+	if [ "$WLAN0_MODE" = "0" -o "$WLAN0_MODE" = "3" ] && [ "$WLAN1_MODE" = "0" -o "$WLAN1_MODE" = "3" ] && [ "$WLAN0_DISABLED" = "0" ] && [ "$WLAN1_DISABLED" = "0" ] && [ "$WLAN0_WSC_DISABLED" = "0" ] && [ "$WLAN1_WSC_DISABLED" = "0" ]; then
+		both_band_ap = 1
+	fi
+}
+
+rtl_check_wlan_if() {
+
+	echo "wlanapp_8192c.sh --rtl_check_wlan_if" >> $LOG
+
+	if [ $PARAM_NUM -ge 1 ]; then
+		for ARG in $PARAM_ALL ; do
+			case $ARG in
+			$WLAN_PREFIX*)
+				if [ -z "$WLAN_INTERFACE" ]; then
+					WLAN_INTERFACE="$ARG"
+				else
+					WLAN_INTERFACE="$WLAN_INTERFACE $ARG"
+				fi
+				;;
+			*)
+				PARAM_BR=$ARG
+				;;
+			esac
+		done
+	fi
+}
+	
+DEBUG_EASYCONF=
+VXD_INTERFACE=
+
+
+## kill 802.1x, autoconf and IAPP daemon ##
+rtl_kill_iwcontrol_pid() { 
+	PIDFILE="$TOP_VAR_DIR/run/iwcontrol.pid"
+	echo "wlanapp_8192c.sh --rtl_kill_iwcontrol_pid"  >> $LOG
+	if [ -f $PIDFILE ] ; then
+		PID=`cat $PIDFILE`
+		echo "IWCONTROL_PID=$PID"  >> $LOG
+		if [ "$PID" != "0" ]; then
+			kill -9 $PID 2>/dev/null
+		fi
+		rm -f $PIDFILE
+	fi
+}
+
+
+rtl_kill_wlan_pid() {
+
+	echo "wlanapp_8192c.sh --rtl_kill_wlan_pid"  >>  $LOG
+	for WLAN in $WLAN_INTERFACE ; do
+		PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN.pid
+		if [ -f $PIDFILE ] ; then
+			PID=`cat $PIDFILE`
+			echo "AUTH_PID=$PID"
+			if [ "$PID" != "0" ]; then
+				kill -9 $PID 2>/dev/null
+			fi
+			rm -f $PIDFILE
+			
+			PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN-vxd.pid 
+			if [ -f $PIDFILE ] ; then		
+				PID=`cat $PIDFILE`
+				if [ "$PID" != "0" ]; then
+					kill -9 $PID 2>/dev/null
+				fi
+				rm -f $PIDFILE       		
+			fi
+		fi
+		
+		# for WPS ---------------------------------->>
+		PIDFILE=$TOP_VAR_DIR/run/wscd-$WLAN.pid
+		if [ "$both_band_ap" = "1" ]; then
+			PIDFILE=$TOP_VAR_DIR/run/wscd-wlan0-wlan1.pid
+		fi
+		
+		if [ -f $PIDFILE ] ; then
+			PID=`cat $PIDFILE`
+			echo "WSCD_PID=$PID"  >> $LOG
+			if [ "$PID" != "0" ]; then
+				kill -9 $PID 2>/dev/null
+			fi
+			rm -f $PIDFILE   
+		fi 
+	done
+	#<<----------------------------------- for WPS
+}
+
+## start 802.1x daemon ##
+DEAMON_CREATED=0
+VALID_WLAN_INTERFACE=
+
+
+rtl_start_wlan() {
+	echo "rtl_start_wlan WLAN_INTERFACE is "$WLAN_INTERFACE >> $LOG
+	for WLAN in $WLAN_INTERFACE ; do
+		CONFIG_DIR=$CONFIG_ROOT_DIR/$WLAN
+		echo "rtl_start_wlan start-1------------ CONFIG_DIR is "$CONFIG_DIR  >> $LOG
+		GET_VALUE_WLAN_DISABLED=`cat $CONFIG_DIR/wlan_disabled`
+		if [ "$GET_VALUE_WLAN_DISABLED" != 0 ]; then
+			continue
+		fi
+		
+		GET_VALUE_WLAN_MODE=`cat $CONFIG_DIR/wlan_mode`
+		GET_WLAN_WPA_AUTH_TYPE=`cat $CONFIG_DIR/wpa_auth`
+		GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
+		
+		EXT=${WLAN#$WLAN_PREFIX[0-9]}
+		EXT=${EXT#-}
+		VAP_AUTH_ENABLE=0
+		ROOT_AUTH_ENABLE=0
+		
+		_ENABLE_1X=0
+		_USE_RS=0
+
+		if [ "$GET_WLAN_ENCRYPT" -lt 2 ]; then
+			GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
+			GET_MAC_AUTH_ENABLED=`cat $ROOT_CONFIG_DIR/mac_auth_enabled`
+			if [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
+				_ENABLE_1X=1
+				_USE_RS=1
+			fi
+		else
+			_ENABLE_1X=1
+			if  [ "$GET_WLAN_WPA_AUTH_TYPE" = 1 ]; then
+				_USE_RS=1
+			fi		
+		fi
+
+		echo "_ENABLE_1X= $_ENABLE_1X" >> $LOG	
+		ROLE=
+		if [ "$_ENABLE_1X" != 0 ]; then	
+			echo "$BIN_DIR/$FLASH_PROG wpa $WLAN $TOP_VAR_DIR/wpa-$WLAN.conf $WLAN" >> $LOG
+			$BIN_DIR/$FLASH_PROG wpa $WLAN $TOP_VAR_DIR/wpa-$WLAN.conf $WLAN
+			if [ "$GET_VALUE_WLAN_MODE" = '1' ]; then
+				GET_VALUE=`cat $CONFIG_DIR/network_type`
+				if [ "$GET_VALUE" = '0' ]; then
+					ROLE=client-infra
+				else
+					ROLE=client-adhoc			
+				fi
+			else
+				ROLE=auth
+			fi
+
+			VAP_NOT_IN_PURE_AP_MODE=0		
+		
+			
+			if [ "$GET_VALUE_WLAN_MODE" = '0' ] && [ "$VAP_NOT_IN_PURE_AP_MODE" = '0' ]; then
+				if  [ "$GET_WLAN_WPA_AUTH_TYPE" != 2 ] || [ "$_USE_RS" != 0 ]; then
+					echo "$BIN_DIR/auth $WLAN $PARAM_BR $ROLE $TOP_VAR_DIR/wpa-$WLAN.conf" >> $LOG
+					$BIN_DIR/auth $WLAN $PARAM_BR $ROLE $TOP_VAR_DIR/wpa-$WLAN.conf
+					
+					DEAMON_CREATED=1
+					ROOT_AUTH_ENABLE=1
+				fi
+		
+			fi
+		fi
+		
+		if [ "$EXT" = "vxd" ]; then	
+			if [ "$ROLE" != "auth" ] || [ "$ROLE" = "auth" -a "$_USE_RS" != 0 ]; then
+				VXD_INTERFACE=$WLAN
+			fi
+		else
+			GET_WSC_DISABLE=`cat $CONFIG_DIR/wsc_disabled`
+			#|| [ $GET_WSC_DISABLE = 0 ]
+			if [ $ROOT_AUTH_ENABLE = 1 ] || [ $GET_WSC_DISABLE = 0 ]; then
+				if [ -z "$VALID_WLAN_INTERFACE" ]; then
+					VALID_WLAN_INTERFACE="$WLAN"
+				else
+					VALID_WLAN_INTERFACE="$VALID_WLAN_INTERFACE $WLAN"
+				fi
+			fi
+		fi
+		
+	done
+
+}
+
+#end of start wlan
+
+
+# for WPS ------------------------------------------------->>
+rtl_start_wps() {
+
+
+	if [ ! -e $BIN_DIR/wscd ]; then
+		echo "wscd not exist $BIN_DIR is " $BIN_DIR  >> $LOG
+		return;
+	fi
+	echo "rtl_start_wps  WLAN is " $WLAN >> $LOG
+	echo "VALID_WLAN_INTERFACE is " $VALID_WLAN_INTERFACE  >> $LOG
+	
+	
+	for WLAN in $VALID_WLAN_INTERFACE ; do
+		EXT=${WLAN#$WLAN_PREFIX[0-9]}
+		EXT=${EXT#-}
+		echo  "EXT=$EXT" >> $LOG
+		if [ "$EXT" = "" ] || [ "$EXT" = "va0" ] || [ "$EXT" = "va1" ] || [ "$EXT" = "vxd" ]; then
+			
+			USE_IWCONTROL=1
+			DEBUG_ON=0
+			_ENABLE_1X=0
+			WSC=1
+			CONFIG_DIR=$CONFIG_ROOT_DIR/$WLAN
+			CONF_FILE=$TOP_VAR_DIR/wsc-$WLAN.conf
+			FiFO_File=$TOP_VAR_DIR/wscd-$WLAN.fifo
+			
+			echo "rtl_start_wps  CONFIG_DIR is " $CONFIG_DIR  >> $LOG
+			
+			GET_WSC_DISABLE=`cat $CONFIG_DIR/wsc_disabled`
+			GET_VALUE_WLAN_DISABLED=`cat $CONFIG_DIR/wlan_disabled`
+			GET_VALUE_WLAN_MODE=`cat $CONFIG_DIR/wlan_mode`
+			GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
+			GET_WLAN_WPA_AUTH_TYPE=`cat $CONFIG_DIR/wpa_auth`
+
+			if [ "$GET_WLAN_ENCRYPT" -lt 2 ]; then
+				GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
+				GET_MAC_AUTH_ENABLED=`cat $CONFIG_DIR/mac_auth_enabled`
+				if [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
+					_ENABLE_1X=1
+				fi
+			else
+				_ENABLE_1X=1
+			fi
+			echo "_ENABLE_1X is " $_ENABLE_1X  >> $LOG
+			if [ "$EXT" = "vxd" ]; then
+				GET_VALUE_WLAN_CURR_MODE=`cat $CONFIG_DIR/wlan_mode`
+				if [ $GET_VALUE_WLAN_CURR_MODE = 1 ]; then
+					GET_WSC_DISABLE = 1
+				fi
+			fi
+			
+			if [ $GET_WSC_DISABLE != 0 ]; then
+				echo "GET_WSC_DISABLE is " $GET_WSC_DISABLE   >> $LOG
+				WSC=0
+			else
+				if  [ "$GET_VALUE_WLAN_DISABLED" != 0 ] || [ "$GET_VALUE_WLAN_MODE" = 2 ]; then
+					echo "GET_VALUE_WLAN_DISABLED is "$GET_VALUE_WLAN_DISABLED  >> $LOG
+					echo "GET_VALUE_WLAN_MODE is "$GET_VALUE_WLAN_MODE  >> $LOG
+					WSC=0
+				else  
+					if [ $GET_VALUE_WLAN_MODE = 1 ]; then	
+						GET_VALUE=`cat $CONFIG_DIR/network_type`
+						if [ "$GET_VALUE" != 0 ]; then
+							echo "network_type is "$GET_VALUE  >> $LOG
+							WSC=0
+						fi
+					fi
+					if [ $GET_VALUE_WLAN_MODE = 0 ]; then	
+						if [ $GET_WLAN_ENCRYPT -lt 2 ] && [ $_ENABLE_1X != 0 ]; then
+							echo "GET_WLAN_ENCRYPT is "$GET_WLAN_ENCRYPT  >> $LOG
+							echo "_ENABLE_1X is "$_ENABLE_1X  >> $LOG
+							WSC=0
+						fi			
+						if [ $GET_WLAN_ENCRYPT -ge 2 ] && [ $GET_WLAN_WPA_AUTH_TYPE = 1 ]; then
+							echo "GET_WLAN_ENCRYPT is "$GET_WLAN_ENCRYPT  >> $LOG
+							echo "GET_WLAN_WPA_AUTH_TYPE is "$GET_WLAN_WPA_AUTH_TYPE  >> $LOG
+							WSC=0
+						fi			
+					fi
+				fi
+			fi
+			echo "-----------------WSC is "$WSC  >> $LOG 
+			if [ $WSC = 1 ]; then
+				if [ ! -f $TOP_VAR_DIR/wps/simplecfgservice.xml ]; then
+					if [ -e $TOP_VAR_DIR/wps ]; then
+						rm $TOP_VAR_DIR/wps -rf
+					fi
+					mkdir $TOP_VAR_DIR/wps
+					#cp $TOP_ETC_DIR/simplecfg*.xml $TOP_VAR_DIR/wps
+					cat $TOP_ETC_DIR/simplecfgservice.xml > $TOP_VAR_DIR/wps/simplecfgservice.xml
+				fi
+
+				if [ $GET_VALUE_WLAN_MODE = 1 ]; then			
+					UPNP=0
+					_CMD="-mode 2"
+				else		
+					GET_WSC_UPNP_ENABLED=`cat $CONFIG_DIR/wsc_upnp_enabled`
+					UPNP=$GET_WSC_UPNP_ENABLED
+					_CMD="-start"
+				fi
+				WPS_MODE=`cat $CONFIG_DIR/wsc_method`
+				if [ "$WPS_MODE" = "1" ]; then
+					_CMD="$_CMD -method 1"
+				fi
+				echo " UPNP is " $UPNP >> $LOG
+				if [ $UPNP = 1 ]; then
+					route del -net 239.255.255.250 netmask 255.255.255.255 dev "$PARAM_BR"
+					route add -net 239.255.255.250 netmask 255.255.255.255 dev "$PARAM_BR"
+				fi
+		
+				if [ "$both_band_ap" = "1" ]; then
+					_CMD="$_CMD -both_band_ap"	
+				fi
+				echo "$BIN_DIR/$FLASH_PROG upd-wsc-conf $TOP_ETC_DIR/wscd.conf $CONF_FILE $WLAN"  >> $LOG
+				$BIN_DIR/$FLASH_PROG upd-wsc-conf $TOP_ETC_DIR/wscd.conf $CONF_FILE $WLAN
+				
+				_CMD="$_CMD -c $CONF_FILE -w $WLAN"
+		
+				if [ $DEBUG_ON = 1 ]; then
+					_CMD="$_CMD -debug"	
+				fi	
+				if [ $USE_IWCONTROL = 1 ]; then
+					_CMD="$_CMD -fi $FiFO_File"
+					DEAMON_CREATED=1
+					echo "DEAMON_CREATED=1" >> $LOG
+				fi
+		
+				if [ -f "$TOP_VAR_DIR/wps_start_pbc" ]; then		
+					_CMD="$_CMD -start_pbc"
+					rm -f $TOP_VAR_DIR/wps_start_pbc
+				fi
+
+				if [ -f "$TOP_VAR_DIR/wps_start_pin" ]; then		
+					_CMD="$_CMD -start"
+					rm -f $TOP_VAR_DIR/wps_start_pin
+				fi	
+				if [ -f "$TOP_VAR_DIR/wps_local_pin" ]; then		
+					PIN=`cat $TOP_VAR_DIR/wps_local_pin`		
+					_CMD="$_CMD -local_pin $PIN"
+					rm -f $TOP_VAR_DIR/wps_local_pin
+				fi
+				if [ -f "$TOP_VAR_DIR/wps_peer_pin" ]; then		
+					PIN=`cat $TOP_VAR_DIR/wps_peer_pin`		
+					_CMD="$_CMD -peer_pin $PIN"
+					rm -f $TOP_VAR_DIR/wps_peer_pin
+				fi				
+				WSC_CMD=$_CMD
+				echo "$BIN_DIR/wscd $WSC_CMD -daemon" >> $LOG
+				$BIN_DIR/wscd $WSC_CMD -daemon
+				echo "<<<<<<<<<<wscd >>>>>>>>>>> over" >> $LOG
+				WAIT=5
+				while [ $USE_IWCONTROL != 0 -a $WAIT != 0 ]		
+				do	
+					if [ -e $FiFO_File ]; then
+						break;
+					else
+						$SLEEP 1
+						WAIT=`expr $WAIT - 1`
+						#WAIT=$((WAIT - 1))
+					fi
+				done
+				if [ $WAIT = 0 ]; then
+					exit $ERROR_WSCD_START_FAIL;
+				fi
+			fi
+		fi
+	done
+}
+#<<--------------------------------------------------- for WPS
+
+rtl_start_iwcontrol() {
+	echo "rtl_start_iwcontrol"  >> $LOG
+	if [ $DEAMON_CREATED = 1 ]; then
+		echo "$BIN_DIR/iwcontrol $VALID_WLAN_INTERFACE $VXD_INTERFACE $POLL"  >> $LOG
+		$BIN_DIR/iwcontrol $VALID_WLAN_INTERFACE $VXD_INTERFACE $POLL
+	fi
+}
+
+rtl_wlanapp() {
+
+	echo "rtl_wlanapp"  >> $LOG
+
+	if [ $PARAM1 = 'kill' ]; then
+		START=0
+	fi
+	rtl_check_wlan_if
+	if [ -z "$WLAN_INTERFACE" ]; then
+		echo "Error in $0, no wlan interface is given!"  >> $LOG
+		exit 0
+	fi
+	rtl_kill_iwcontrol_pid
+	rtl_kill_wlan_pid
+	rm -f $TOP_VAR_DIR/*.fifo
+	if [ $START = 0 ]; then
+		return;
+	fi
+	
+#	rtl_check_wlan_band
+	rtl_start_wlan
+	rtl_start_wps
+	rtl_start_iwcontrol
+}
+
+rtl_wlanapp