#
# Copyright (C) 2009 OpenWrt.org
#

preinit_set_mac_address() {
	local mac=`envctl factory get mac`

	if [ -n "$mac" ]; then
		mac=`printf "%012x" "0x$mac"`
		mac=${mac:0:12}
		local mac_sn_num=`printf "%d" "0x${mac:6:6}"`

		local mac_vendor="${mac:0:2}:${mac:2:2}:${mac:4:2}"
		local lan_mac="${mac:0:2}:${mac:2:2}:${mac:4:2}:${mac:6:2}:${mac:8:2}:${mac:10:2}"

		mac_sn_num=$(($mac_sn_num+1))
		local mac_sn=`printf "%06x" $mac_sn_num`
		local wifi_2g_mac="$mac_vendor:${mac_sn:0:2}:${mac_sn:2:2}:${mac_sn:4:2}"

		mac_sn_num=$(($mac_sn_num+1))
		mac_sn=`printf "%06x" $mac_sn_num`
		local wifi_5g_mac="$mac_vendor:${mac_sn:0:2}:${mac_sn:2:2}:${mac_sn:4:2}"

		if [ -n "$lan_mac" ]; then
			ifconfig eth0 down		
			ifconfig eth0 hw ether "$lan_mac"
			ifconfig eth0 up	
		fi
		
		#uci set network.lan.macaddr=$lan_mac
		uci set network.@device[0].macaddr=$lan_mac
		uci set wireless.2g.macAddr=$wifi_2g_mac
		uci set wireless.5g.macAddr=$wifi_5g_mac
	fi

}
boot_hook_add preinit_main preinit_set_mac_address
