|
|
|
@ -4,6 +4,8 @@ wpa_supplicant_setup_vif() { |
|
|
|
|
local key="$key" |
|
|
|
|
local options="$3" |
|
|
|
|
local freq="" |
|
|
|
|
local ap_scan="" |
|
|
|
|
local scan_ssid="1" |
|
|
|
|
[ -n "$4" ] && freq="frequency=$4" |
|
|
|
|
|
|
|
|
|
# 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" |
|
|
|
|
return 1 |
|
|
|
|
} |
|
|
|
|
[ "$mode" = "adhoc" ] && modestr="mode=1" |
|
|
|
|
[ "$mode" = "adhoc" ] && { |
|
|
|
|
modestr="mode=1" |
|
|
|
|
scan_ssid="0" |
|
|
|
|
ap_scan="ap_scan=2" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
key_mgmt='NONE' |
|
|
|
|
case "$enc" in |
|
|
|
@ -117,22 +123,48 @@ wpa_supplicant_setup_vif() { |
|
|
|
|
;; |
|
|
|
|
esac |
|
|
|
|
|
|
|
|
|
local fixed_freq bssid1 beacon_interval brates mrate |
|
|
|
|
config_get ifname "$vif" ifname |
|
|
|
|
config_get bridge "$vif" bridge |
|
|
|
|
config_get ssid "$vif" ssid |
|
|
|
|
config_get bssid "$vif" bssid |
|
|
|
|
bssid=${bssid:+"bssid=$bssid"} |
|
|
|
|
bssid1=${bssid:+"bssid=$bssid"} |
|
|
|
|
beacon_interval=${beacon_int:+"beacon_interval=$beacon_int"} |
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
cat > /var/run/wpa_supplicant-$ifname.conf <<EOF |
|
|
|
|
ctrl_interface=/var/run/wpa_supplicant-$ifname |
|
|
|
|
$ap_scan |
|
|
|
|
network={ |
|
|
|
|
$modestr |
|
|
|
|
scan_ssid=1 |
|
|
|
|
scan_ssid=$scan_ssid |
|
|
|
|
ssid="$ssid" |
|
|
|
|
$bssid |
|
|
|
|
$bssid1 |
|
|
|
|
key_mgmt=$key_mgmt |
|
|
|
|
$proto |
|
|
|
|
$freq |
|
|
|
|
${fixed:+"fixed_freq=1"} |
|
|
|
|
$beacon_interval |
|
|
|
|
$brates |
|
|
|
|
$mrate |
|
|
|
|
$ieee80211w |
|
|
|
|
$passphrase |
|
|
|
|
$pairwise |
|
|
|
|