wpa_supplicant: add more parameters

Signed-off-by: Antonio Quartulli <ordex@autistici.org>

SVN-Revision: 32829
This commit is contained in:
John Crispin 2012-07-24 23:07:15 +00:00
parent 3f3268c0c2
commit 8b3882224a
2 changed files with 40 additions and 7 deletions

View file

@ -4,6 +4,8 @@ wpa_supplicant_setup_vif() {
local key="$key" local key="$key"
local options="$3" local options="$3"
local freq="" local freq=""
local ap_scan=""
local scan_ssid="1"
[ -n "$4" ] && freq="frequency=$4" [ -n "$4" ] && freq="frequency=$4"
# make sure we have the encryption type and the psk # make sure we have the encryption type and the psk
@ -30,7 +32,11 @@ wpa_supplicant_setup_vif() {
echo "wpa_supplicant_setup_vif($ifname): Refusing to bridge $mode mode interface" echo "wpa_supplicant_setup_vif($ifname): Refusing to bridge $mode mode interface"
return 1 return 1
} }
[ "$mode" = "adhoc" ] && modestr="mode=1" [ "$mode" = "adhoc" ] && {
modestr="mode=1"
scan_ssid="0"
ap_scan="ap_scan=2"
}
key_mgmt='NONE' key_mgmt='NONE'
case "$enc" in case "$enc" in
@ -117,22 +123,48 @@ wpa_supplicant_setup_vif() {
;; ;;
esac esac
local fixed_freq bssid1 beacon_interval brates mrate
config_get ifname "$vif" ifname config_get ifname "$vif" ifname
config_get bridge "$vif" bridge config_get bridge "$vif" bridge
config_get ssid "$vif" ssid bssid1=${bssid:+"bssid=$bssid"}
config_get bssid "$vif" bssid beacon_interval=${beacon_int:+"beacon_interval=$beacon_int"}
bssid=${bssid:+"bssid=$bssid"}
local br brval brsub brstr
[ -n "$basic_rate_list" ] && {
for br in $basic_rate_list; do
brval="$(($br / 1000))"
brsub="$((($br / 100) % 10))"
[ "$brsub" -gt 0 ] && brval="$brval.$brsub"
[ -n "$brstr" ] && brstr="$brstr,"
brstr="$brstr$brval"
done
brates=${basic_rate_list:+"rates=$brstr"}
}
local mcval=""
[ -n "$mcast_rate" ] && {
mcval="$(($mcast_rate / 1000))"
mcsub="$(( ($mcast_rate / 100) % 10 ))"
[ "$mcsub" -gt 0 ] && mcval="$mcval.$mcsub"
mrate=${mcast_rate:+"mcast_rate=$mcval"}
}
rm -rf /var/run/wpa_supplicant-$ifname rm -rf /var/run/wpa_supplicant-$ifname
cat > /var/run/wpa_supplicant-$ifname.conf <<EOF cat > /var/run/wpa_supplicant-$ifname.conf <<EOF
ctrl_interface=/var/run/wpa_supplicant-$ifname ctrl_interface=/var/run/wpa_supplicant-$ifname
$ap_scan
network={ network={
$modestr $modestr
scan_ssid=1 scan_ssid=$scan_ssid
ssid="$ssid" ssid="$ssid"
$bssid $bssid1
key_mgmt=$key_mgmt key_mgmt=$key_mgmt
$proto $proto
$freq $freq
${fixed:+"fixed_freq=1"}
$beacon_interval
$brates
$mrate
$ieee80211w $ieee80211w
$passphrase $passphrase
$pairwise $pairwise

View file

@ -453,8 +453,9 @@ enable_mac80211() {
echo "enable_mac80211($device): Failed to set up wpa_supplicant for interface $ifname" >&2 echo "enable_mac80211($device): Failed to set up wpa_supplicant for interface $ifname" >&2
# make sure this wifi interface won't accidentally stay open without encryption # make sure this wifi interface won't accidentally stay open without encryption
ifconfig "$ifname" down ifconfig "$ifname" down
continue
} }
# wpa_supplicant will bring the iface up
continue
fi fi
} }