SVN-Revision: 5890master
parent
88e7da2bab
commit
d68a9310fb
@ -0,0 +1,66 @@ |
|||||||
|
hostapd_setup_vif() { |
||||||
|
local vif="$1" |
||||||
|
local driver="$2" |
||||||
|
local hostapd_cfg= |
||||||
|
|
||||||
|
# Examples: |
||||||
|
# psk-mixed/tkip => WPA1+2 PSK, TKIP |
||||||
|
# wpa-psk2/tkip+aes => WPA2 PSK, CCMP+TKIP |
||||||
|
# wpa2/tkip+aes => WPA2 RADIUS, CCMP+TKIP |
||||||
|
# ... |
||||||
|
|
||||||
|
# TODO: move this parsing function somewhere generic, so that |
||||||
|
# later it can be reused by drivers that don't use hostapd |
||||||
|
|
||||||
|
# crypto defaults: WPA2 vs WPA1 |
||||||
|
case "$enc" in |
||||||
|
wpa2*|WPA2*|*PSK2*|*psk2*) |
||||||
|
wpa=2 |
||||||
|
crypto="CCMP" |
||||||
|
;; |
||||||
|
*mixed*) |
||||||
|
wpa=3 |
||||||
|
crypto="CCMP TKIP" |
||||||
|
;; |
||||||
|
*) |
||||||
|
wpa=1 |
||||||
|
crypto="TKIP" |
||||||
|
;; |
||||||
|
esac |
||||||
|
|
||||||
|
# explicit override for crypto setting |
||||||
|
case "$enc" in |
||||||
|
*tkip+aes|*TKIP+AES|*tkip+ccmp|*TKIP+CCMP) crypto="CCMP TKIP";; |
||||||
|
*tkip|*TKIP) crypto="TKIP";; |
||||||
|
*aes|*AES|*ccmp|*CCMP) crypto="CCMP";; |
||||||
|
esac |
||||||
|
|
||||||
|
# use crypto/auth settings for building the hostapd config |
||||||
|
case "$enc" in |
||||||
|
*psk*|*PSK*) |
||||||
|
config_get psk "$vif" key |
||||||
|
append hostapd_cfg "wpa_passphrase=$psk" "$N" |
||||||
|
;; |
||||||
|
*wpa*|*WPA*) |
||||||
|
# FIXME: add wpa+radius here |
||||||
|
;; |
||||||
|
*) |
||||||
|
return 0; |
||||||
|
;; |
||||||
|
esac |
||||||
|
config_get ifname "$vif" ifname |
||||||
|
config_get bridge "$vif" bridge |
||||||
|
config_get ssid "$vif" ssid |
||||||
|
cat > /var/run/hostapd-$ifname.conf <<EOF |
||||||
|
driver=$driver |
||||||
|
interface=$ifname |
||||||
|
${bridge:+bridge=$bridge} |
||||||
|
ssid=$ssid |
||||||
|
debug=0 |
||||||
|
wpa=$wpa |
||||||
|
wpa_pairwise=$crypto |
||||||
|
$hostapd_cfg |
||||||
|
EOF |
||||||
|
hostapd -B /var/run/hostapd-$ifname.conf |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue