lantiq: add uci-defaults code for handling leds
[openwrt.git] / package / madwifi / files / lib / wifi / madwifi.sh
index 429f658..8a4572d 100755 (executable)
@@ -28,15 +28,22 @@ find_atheros_phy() {
 scan_atheros() {
        local device="$1"
        local wds
 scan_atheros() {
        local device="$1"
        local wds
-       local adhoc ahdemo sta ap monitor
+       local adhoc ahdemo sta ap monitor disabled
 
        [ ${device%[0-9]} = "wifi" ] && config_set "$device" phy "$device"
 
        [ ${device%[0-9]} = "wifi" ] && config_set "$device" phy "$device"
+
+       local ifidx=0
        
        config_get vifs "$device" vifs
        for vif in $vifs; do
        
        config_get vifs "$device" vifs
        for vif in $vifs; do
-       
+               config_get_bool disabled "$vif" disabled 0
+               [ $disabled = 0 ] || continue
+
+               local vifname
+               [ $ifidx -gt 0 ] && vifname="ath${device#radio}-$ifidx" || vifname="ath${device#radio}"
+
                config_get ifname "$vif" ifname
                config_get ifname "$vif" ifname
-               config_set "$vif" ifname "${ifname:-ath}"
+               config_set "$vif" ifname "${ifname:-$vifname}"
                
                config_get mode "$vif" mode
                case "$mode" in
                
                config_get mode "$vif" mode
                case "$mode" in
@@ -55,6 +62,8 @@ scan_atheros() {
                        ;;
                        *) echo "$device($vif): Invalid mode, ignored."; continue;;
                esac
                        ;;
                        *) echo "$device($vif): Invalid mode, ignored."; continue;;
                esac
+
+               ifidx=$(($ifidx + 1))
        done
 
        case "${adhoc:+1}:${sta:+1}:${ap:+1}" in
        done
 
        case "${adhoc:+1}:${sta:+1}:${ap:+1}" in
@@ -79,7 +88,7 @@ disable_atheros() (
        config_get phy "$device" phy
 
        set_wifi_down "$device"
        config_get phy "$device" phy
 
        set_wifi_down "$device"
-       
+
        include /lib/network
        cd /proc/sys/net
        for dev in *; do
        include /lib/network
        cd /proc/sys/net
        for dev in *; do
@@ -104,8 +113,12 @@ enable_atheros() {
        [ -n "$regdomain" ] && echo "$regdomain" > /proc/sys/dev/$phy/regdomain
 
        config_get country "$device" country
        [ -n "$regdomain" ] && echo "$regdomain" > /proc/sys/dev/$phy/regdomain
 
        config_get country "$device" country
-       [ -z "$country" ] && country="0"
-       echo "$country" > /proc/sys/dev/$phy/countrycode
+       case "$country" in
+               [A-Za-z]*) country=`grep -i "$country" /lib/wifi/madwifi_countrycodes.txt |cut -d " " -f 2`;;
+               [0-9]*) ;;
+               *) country="" ;;
+       esac
+       [ -n "$country" ] && echo "$country" > /proc/sys/dev/$phy/countrycode
 
        config_get_bool outdoor "$device" outdoor "0"
        echo "$outdoor" > /proc/sys/dev/$phy/outdoor
 
        config_get_bool outdoor "$device" outdoor "0"
        echo "$outdoor" > /proc/sys/dev/$phy/outdoor
@@ -165,7 +178,7 @@ enable_atheros() {
                                esac
                        ;;
                esac
                                esac
                        ;;
                esac
-                       
+
                [ -x "$(which gpioctl 2>/dev/null)" ] || antenna=
                gpioctl "dirout" "$antgpio" >/dev/null 2>&1
                case "$gpioval" in
                [ -x "$(which gpioctl 2>/dev/null)" ] || antenna=
                gpioctl "dirout" "$antgpio" >/dev/null 2>&1
                case "$gpioval" in
@@ -192,14 +205,14 @@ enable_atheros() {
                config_get enc "$vif" encryption
                config_get eap_type "$vif" eap_type
                config_get mode "$vif" mode
                config_get enc "$vif" encryption
                config_get eap_type "$vif" eap_type
                config_get mode "$vif" mode
-               
+
                case "$mode" in
                        sta) config_get_bool nosbeacon "$device" nosbeacon;;
                        adhoc) config_get_bool nosbeacon "$vif" sw_merge 1;;
                esac
                case "$mode" in
                        sta) config_get_bool nosbeacon "$device" nosbeacon;;
                        adhoc) config_get_bool nosbeacon "$vif" sw_merge 1;;
                esac
-               
+
                [ "$nosbeacon" = 1 ] || nosbeacon=""
                [ "$nosbeacon" = 1 ] || nosbeacon=""
-               ifname=$(wlanconfig "$ifname" create wlandev "$phy" wlanmode "$mode" ${nosbeacon:+nosbeacon})
+               ifname=$(wlanconfig "$ifname" create nounit wlandev "$phy" wlanmode "$mode" ${nosbeacon:+nosbeacon})
                [ $? -ne 0 ] && {
                        echo "enable_atheros($device): Failed to set up $mode vif $ifname" >&2
                        continue
                [ $? -ne 0 ] && {
                        echo "enable_atheros($device): Failed to set up $mode vif $ifname" >&2
                        continue
@@ -299,10 +312,10 @@ enable_atheros() {
                config_get_bool comp "$vif" compression 0
                iwpriv "$ifname" compression "$comp" >/dev/null 2>&1
 
                config_get_bool comp "$vif" compression 0
                iwpriv "$ifname" compression "$comp" >/dev/null 2>&1
 
-               config_get_bool minrate "$vif" minrate
+               config_get minrate "$vif" minrate
                [ -n "$minrate" ] && iwpriv "$ifname" minrate "$minrate"
 
                [ -n "$minrate" ] && iwpriv "$ifname" minrate "$minrate"
 
-               config_get_bool maxrate "$vif" maxrate
+               config_get maxrate "$vif" maxrate
                [ -n "$maxrate" ] && iwpriv "$ifname" maxrate "$maxrate"
 
                config_get_bool burst "$vif" bursting
                [ -n "$maxrate" ] && iwpriv "$ifname" maxrate "$maxrate"
 
                config_get_bool burst "$vif" bursting
@@ -362,7 +375,7 @@ enable_atheros() {
                config_get ssid "$vif" ssid
                [ -n "$ssid" ] && {
                        iwconfig "$ifname" essid on
                config_get ssid "$vif" ssid
                [ -n "$ssid" ] && {
                        iwconfig "$ifname" essid on
-                       iwconfig "$ifname" essid "$ssid"
+                       iwconfig "$ifname" essid ${ssid:+-- }"$ssid"
                }
 
                set_wifi_up "$vif" "$ifname"
                }
 
                set_wifi_up "$vif" "$ifname"
@@ -469,6 +482,7 @@ config wifi-iface
        option mode     ap
        option ssid     OpenWrt
        option encryption none
        option mode     ap
        option ssid     OpenWrt
        option encryption none
+
 EOF
        devidx=$(($devidx + 1))
        done
 EOF
        devidx=$(($devidx + 1))
        done
This page took 0.030465 seconds and 4 git commands to generate.