#!/bin/ash

[ "$ACTION" == "add" ] || exit 0

PHYNBR=${DEVPATH##*/phy}

[ -n $PHYNBR ] || exit 0

. /lib/functions.sh
. /lib/functions/system.sh

board=$(board_name)

case "$board" in
	linksys,ea8500)
		echo $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) $(($PHYNBR + 1)) ) > /sys${DEVPATH}/macaddress
		;;
	nec,wg2600hp)
		echo $(macaddr_add $(mtd_get_mac_binary PRODUCTDATA 12) $((1 - $PHYNBR)) ) > /sys${DEVPATH}/macaddress
		;;
	netgear,d7800 |\
	netgear,r7500v2 |\
	netgear,r7800)
		echo $(macaddr_add $(mtd_get_mac_binary art 6)  $(($PHYNBR + 1)) ) > /sys${DEVPATH}/macaddress
		;;
	tplink,c2600)
		echo $(macaddr_add $(mtd_get_mac_binary default-mac 8)  $(($PHYNBR - 1)) ) > /sys${DEVPATH}/macaddress
		;;
	tplink,vr2600v)
		echo $(macaddr_add $(mtd_get_mac_binary default-mac 0)  $(($PHYNBR - 1)) ) > /sys${DEVPATH}/macaddress
		;;
	zyxel,nbg6817)
		echo $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) $((1 - $PHYNBR)) ) > /sys${DEVPATH}/macaddress
		;;
	*)
		;;
esac

OPATH=${DEVPATH##/devices/platform/}
OPATH=${OPATH%%/ieee*}

# 10 radios is enough for anyone!
for i in `seq 0 9`;
  do
  BUS=`uci get wireless.@wifi-device[$i].path`
  if [ "$BUS " == "$OPATH " ]
      then
      PHYNAME=${DEVPATH##*ieee80211/}
      NPHYNAME=`uci get wireless.@wifi-device[$i].phyname`
      if [ "$NPHYNAME " != " " ]
          then
          if [ "$PHYNAME " != "$NPHYNAME " ]
              then
              iw $PHYNAME set name $NPHYNAME
          fi
      fi
  fi
done
