config_get mode "$vif" mode
case "$mode" in
- adhoc|ahdemo|sta|ap)
+ adhoc|ahdemo|sta|ap|monitor)
append $mode "$vif"
;;
wds)
*) echo "$device: Invalid mode combination in config"; return 1;;
esac
- config_set "$device" vifs "${ap:+$ap }${adhoc:+$adhoc }${ahdemo:+$ahdemo }${sta:+$sta }${wds:+$wds }"
+ config_set "$device" vifs "${ap:+$ap }${adhoc:+$adhoc }${ahdemo:+$ahdemo }${sta:+$sta }${wds:+$wds }${monitor:+$monitor}"
}
[ "$first" = 1 ] && {
# only need to change freq band and channel on the first vif
config_get agmode "$device" agmode
+ [ -z "$agmode" ] && config_get agmode "$device" mode
+
pureg=0
case "$agmode" in
*b) agmode=11b;;
*a) agmode=11a;;
*) agmode=auto;;
esac
- iwconfig "$ifname" channel "$channel" >/dev/null 2>/dev/null
iwpriv "$ifname" mode "$agmode"
iwpriv "$ifname" pureg "$pureg"
iwconfig "$ifname" channel "$channel" >/dev/null 2>/dev/null
- ifconfig "$ifname" up
}
config_get_bool hidden "$vif" hidden 0
iwpriv "$ifname" ff "$ff"
fi
+ config_get wdssep "$vif" wdssep
+ [ -n "$wdssep" ] && iwpriv "$ifname" wdssep "$wdssep"
+
config_get wds "$vif" wds
case "$wds" in
1|on|enabled) wds=1;;
config_get rts "$vif" rts
[ -n "$rts" ] && iwconfig "$ifname" rts "${rts%%.*}"
- config_get_bool doth "$vif" 80211h
- [ -n "$doth" ] && iwpriv "$ifname" doth "$doth"
-
config_get_bool comp "$vif" compression
[ -n "$comp" ] && iwpriv "$ifname" compression "$comp"
esac
ifconfig "$ifname" up
- iwconfig "$ifname" channel "$channel" >/dev/null 2>/dev/null
-
local net_cfg bridge
net_cfg="$(find_net_config "$vif")"
[ -z "$net_cfg" ] || {
#add wpa_supplicant calls here
;;
esac
- [ -z "$proto" ] || wpa_supplicant ${bridge:+ -b $bridge} -B -D wext -i "$ifname" -c /var/run/wpa_supplicant-$ifname.conf
+ [ -z "$proto" ] || wpa_supplicant ${bridge:+ -b $bridge} -B -D madwifi -i "$ifname" -c /var/run/wpa_supplicant-$ifname.conf
;;
esac
first=0