X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/ab683019760097d5207d63e32f6a8186c6138c64..fcb4e88f44ae7fc0b4e8af1cfb5b88216acfa760:/package/madwifi/files/lib/wifi/madwifi.sh diff --git a/package/madwifi/files/lib/wifi/madwifi.sh b/package/madwifi/files/lib/wifi/madwifi.sh index 429f658ae..93e68f51e 100755 --- a/package/madwifi/files/lib/wifi/madwifi.sh +++ b/package/madwifi/files/lib/wifi/madwifi.sh @@ -28,13 +28,15 @@ find_atheros_phy() { 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" config_get vifs "$device" vifs for vif in $vifs; do - + config_get_bool disabled "$vif" disabled 0 + [ $disabled = 0 ] || continue + config_get ifname "$vif" ifname config_set "$vif" ifname "${ifname:-ath}" @@ -79,7 +81,7 @@ disable_atheros() ( config_get phy "$device" phy set_wifi_down "$device" - + include /lib/network cd /proc/sys/net for dev in *; do @@ -104,8 +106,12 @@ enable_atheros() { [ -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 @@ -165,7 +171,7 @@ enable_atheros() { esac ;; esac - + [ -x "$(which gpioctl 2>/dev/null)" ] || antenna= gpioctl "dirout" "$antgpio" >/dev/null 2>&1 case "$gpioval" in @@ -192,12 +198,12 @@ enable_atheros() { 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 - + [ "$nosbeacon" = 1 ] || nosbeacon="" ifname=$(wlanconfig "$ifname" create wlandev "$phy" wlanmode "$mode" ${nosbeacon:+nosbeacon}) [ $? -ne 0 ] && { @@ -299,10 +305,10 @@ enable_atheros() { 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" - config_get_bool maxrate "$vif" maxrate + config_get maxrate "$vif" maxrate [ -n "$maxrate" ] && iwpriv "$ifname" maxrate "$maxrate" config_get_bool burst "$vif" bursting @@ -362,7 +368,7 @@ enable_atheros() { 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" @@ -469,6 +475,7 @@ config wifi-iface option mode ap option ssid OpenWrt option encryption none + EOF devidx=$(($devidx + 1)) done