if [ -n "`grep cfg80211 /proc/modules`" ] then sleep 1 newphy=`/sbin/iw list | sed -n 's/^Wiphy //p' | sort` newwlan=`ip link show | sed -n 's/^[0-9]\{1,\}: \([a-z]\{2,\}[0-9]\{1,\}\).*/\1/p' | sort` for i in $oldwlan do newwlan=`echo $newwlan | sed "s/$i//"` done for i in $oldphy do newphy=`echo $newphy | sed "s/$i//"` done if [ -n "$newphy" ] then for i in $newphy do set -- $newwlan j=$1 newwlan=`echo $newwlan | sed "s/$j//"` mac=`ip link show $j | sed -n 'y/abcdef/ABCDEF/;s/.*\(\([0-9A-F]\{2\}:\)\{5\}[0-9A-F]\{2\}\).\+/\1/p'` echo "${i}=${mac}" >>/var/run/wlanphy.conf case $drv in ath[59]k) if [ "$WLAN_N" -gt 1 ] then macfound=0 macfoundlist='' for k in `seq 1 $WLAN_N` do eval wmac=\$WLAN_${k}_MAC wmac=`echo $wmac | sed 'y/abcdef/ABCDEF/'` if [ "$wmac" = "$mac" ] then macfound=`expr $macfound + 1` eval macfound_$macfound=$k fi done if [ $macfound -gt 1 ] then echo Found $macfound Configurations for WLAN-Card $j with MAC-Address $mac if [ $macfound -gt 4 ] then log_warn "VAP-Limit for $j($drv) with MAC-Address $mac is 4." macfound=4 fi di=`grep 'wlan[0-9]\+:[ ]' /proc/net/dev | sed -n '/:/s/ *wlan\([0-9]\+\):.*/\1/p' | sort -nr | head -n 1` echo "Keeping VAP 1 on $i named $j with MAC-Address $mac" # iw dev mon.$j del >/dev/null 2>&1 for k in `seq 2 $macfound` do if [ -n "$di" ] then di=`expr $di \+ 1` else di=0 fi eval l=\$macfound_$k newmac=`echo $mac | sed 's/^[0-9a-fA-F]\{2\}//'` case $k in 2) newmac="06$newmac" ;; 3) newmac="0A$newmac" ;; 4) newmac="0E$newmac" ;; *) newmac="00$newmac" ;; esac echo Creating VAP $k on $i named wlan$di with MAC-Address $newmac iw phy $i interface add wlan$di type managed # iw dev mon.wlan$di del >/dev/null 2>&1 ip link set dev wlan$di addr $newmac eval WLAN_${l}_MAC=$newmac done fi fi ;; esac done fi fi