#!/bin/sh /etc/rc.common
# Copyright (C) 2009 Draytek.com

START=99
YES=0	# TRUE
NO=1	# FALSE

check_rt2880_cfg() {
	local devid
	local chipid=18140801
	devid=$(cat /proc/bus/pci/devices | cut -f2)
	if [ ! -f /etc/config/wireless ]; then
		return $NO
	fi
	if echo "$devid" | grep -q $chipid; then
	    cat /etc/config/wireless | grep -qE 'rt2880\>' && return $YES
	else
	    return $NO
	fi
	return $NO
}

check_rt2860_cfg() {
	local devid
	local chipid=18140601
	devid=$(cat /proc/bus/pci/devices | cut -f2)
	if [ ! -f /etc/config/wireless ]; then
		return $NO
	fi
	if echo "$devid" | grep -q $chipid; then
	    cat /etc/config/wireless | grep -qE 'rt2860\>' && return $YES
	else
	    return $NO
	fi
	return $NO
}

start() {
        mac_address=$(ifconfig | grep "eth0" | sed "s/eth0      Link encap:Ethernet  HWaddr //g")
        uci -q -P /var/state set network.lan.mac_address=$mac_address
        /etc/gcom/3g.reboot
        dray_fwup&
		
		# detect wlan card for rt2860 and rt2880
		if ( check_rt2880_cfg || check_rt2860_cfg ); then
			uci -q -P /var/state set network.wifi_device=1
			enc=$(uci get wireless.@wifi-iface[0].encryption)
			case "$enc" in
				WPA|wpa|WPA2|wpa2|WPA1WPA2|wpa1wpa2)
					# stop vitesse hardware DoS to pass radius authentication
					/etc/init.d/dosprotech stop
			;;
			esac
		fi
}
