diff options
author | Felix Fietkau <nbd@openwrt.org> | 2007-04-18 12:40:27 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2007-04-18 12:40:27 +0000 |
commit | d913bf3c4976517d338be7220c65f8f03980bf6d (patch) | |
tree | a935e494a4cd4a4b705e9ad59cd67c7fc485db50 /package/hostapd/files/hostapd.sh | |
parent | 38515a7f8149704dd5903e35c568af8121a27e1e (diff) | |
download | mtk-20170518-d913bf3c4976517d338be7220c65f8f03980bf6d.zip mtk-20170518-d913bf3c4976517d338be7220c65f8f03980bf6d.tar.gz mtk-20170518-d913bf3c4976517d338be7220c65f8f03980bf6d.tar.bz2 |
move hostapd setup script from wireless-tools to hostapd package
SVN-Revision: 7000
Diffstat (limited to 'package/hostapd/files/hostapd.sh')
-rw-r--r-- | package/hostapd/files/hostapd.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/package/hostapd/files/hostapd.sh b/package/hostapd/files/hostapd.sh new file mode 100644 index 0000000..529462e --- /dev/null +++ b/package/hostapd/files/hostapd.sh @@ -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 +} + |